我希望能够将idlength属性置于id的属性上。
var aclass = {id:1234, idlength:this.id*2,};
alert (aclass.idlength);
但是我收到了id未定义的错误。怎么了? 将idlength:this.id * 2工作吗?
答案 0 :(得分:1)
如果使用对象文字符号来创建对象,则您指定的值不能引用同一对象中的其他属性 - 在评估整个文字之后,该对象才会存在。
你可以这样做:
var aclass = {id:1234};
aclass.idlength = aclass.id * 2;
alert (aclass.idlength);
基本上,您使用对象文字来创建不依赖于其他属性的任何属性,然后单独分配其他属性。
或者你可以这样做:
var idVal = 1234,
aclass = {
id : idVal,
idlength : idVal * 2
};
分配属性等于已定义的其他变量没有问题。
另外,我不会在最后一个属性后面留下一个逗号,因为有些浏览器不喜欢它。 (我同意他们的意见。)