Titanium или Javascript: получить значение свойства выше в том же объекте создания фигурных скобок - PullRequest
0 голосов
/ 23 февраля 2012

Я хочу, чтобы свойство idlength приняло свойство идентификатора.

var aclass = {id:1234, idlength:this.id*2,};
alert (aclass.idlength);

Но я получаю ошибку, что идентификатор не определен.Что случилось?Будет ли idlength: this.id * 2 работать?

1 Ответ

1 голос
/ 23 февраля 2012

Если для создания объекта используется литеральная нотация объекта, назначаемые вами значения не могут ссылаться на другие свойства в том же объекте - объект не существует до тех пор, пока не будет оценен весь литерал.

Вы можете сделать это следующим образом:

var aclass = {id:1234};
aclass.idlength = aclass.id * 2;

alert (aclass.idlength);

Где вы в основном используете литерал объекта для создания любых свойств, которые не зависят от других свойств, а затем присваиваете другие свойства индивидуально.

В качестве альтернативы вы можете сделать это:

var idVal = 1234,
    aclass = {
       id : idVal,
       idlength : idVal * 2
    };

Нет проблем с назначением свойств, равных другим переменным, которые уже определены.

Кроме того, я бы не оставил запятуюпосле последнего свойства, потому что некоторым браузерам это не нравится.(И я с ними согласен.)

...