2014-02-20 4 views
0

Я не знаю, есть ли enum в JavaScript. Вот мой код:javascript инициализирует свойство, используя другие свойства

var someObject = { 
    UNLOCK : 0, 
    LOCK : 1, 
    state : this.UNLOCK, 
}; 

Не работает. Похоже, на этом этапе ссылка this еще не готова. Как я могу инициализировать свойство другими свойствами?

+0

, если вы хотите создать перечисления: Посмотри [перечисляемые типов в JavaScript] (https://www.inkling.com/read/javascript-definitive-guide-david-flanagan-6th/chapter-9/enumerated-types-in-javascript) –

ответ

0

this в контексте, который вы предоставили, относится к глобальному объекту (window).

Просто добавьте новое свойство для объекта после того, как он был объявлен:

var someObject = { 
    UNLOCK: 0, 
    LOCK: 1 
}; 

someObject.state = someObject.UNLOCK; 
+0

У меня есть некоторый опыт работы с языками OO, и для меня больше природы для инициализации свойств внутри его декларации (из конечно, нет так называемой декларации в js) или внутри конструктора. Есть ли способ достичь этого? – leon

+0

Не с простыми объектными литералами. Если вы ищете что-то, что лучше инкапсулировано, вы, вероятно, захотите обернуть все в своем классе. –

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