2016-03-15 2 views
-3

У меня есть проблемы с назначением имущества на объект, созданный с помощью конструктора ВНУТРИ другой функцииJS создания объекта в объекте с конструктором

var something = { 
    property1: 'sth', 
    object: new Object() 
    } 

и работает он создает объект внутри объекта, но каждый раз, когда я пытаюсь присвоить свойство объект внутри объекта, такого как

var something = { 
    property1: 'sth', 
    object: new Object(), 
    object.property: 'anything' 
    } 

Это сообщение об ошибке, не показано синтаксисError: неожиданный токен. , albo пытался с объектом ['property'], но показывает «неожиданный токен [», так как я его назначил?

ответ

2

Вы можете сделать это в два этапа:

var something = { 
    property1: 'sth', 
    object: new Object(), 
}; 

something.object.property = 'anything'; 

Или использовать Object.assign слиться свойства в созданный объект:

var something = { 
    property1: 'sth', 
    object: Object.assign(new Object(), { 
    property: 'anything', 
    }), 
}; 

Конечно, если вы являются один создания объект (в отличие от некоторых сторонних функций, создающих объект), нет необходимости использовать new Object. Просто используйте литерал объекта.

+0

Почему бы не 'object: {property: 'anything'}'? – zerkms

+1

Я предположил, что 'new Object' является заполнителем для чего-то вроде' someThirdPartyFunctionCreatingAnObject() '. –

Смежные вопросы