Titanium或Javascript:在相同的对象创建花括号中获取上面的属性值

时间:2012-02-23 03:04:06

标签: javascript class properties titanium inheritance

我希望能够将idlength属性置于id的属性上。

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

但是我收到了id未定义的错误。怎么了? 将idlength:this.id * 2工作吗?

1 个答案:

答案 0 :(得分:1)

如果使用对象文字符号来创建对象,则您指定的值不能引用同一对象中的其他属性 - 在评估整个文字之后,该对象才会存在。

你可以这样做:

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

alert (aclass.idlength);

基本上,您使用对象文字来创建不依赖于其他属性的任何属性,然后单独分配其他属性。

或者你可以这样做:

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

分配属性等于已定义的其他变量没有问题。

另外,我不会在最后一个属性后面留下一个逗号,因为有些浏览器不喜欢它。 (我同意他们的意见。)

相关问题