可以在对象初始化时引用自己的属性吗?
我有一个应该是唯一的对象,并且只存在于一个所以我 没有初始化器等。
使用类似的东西:
var Myobj = {
property1 : aaa,
property2 : bbb,
property3 : {a: self.property1 }
/* ^-- is this somehow possible without using a function?
Or a better way to solve / structure this. .init()
best option? */
};
>> Fiddle<<
real 对象(在实际代码中)有一个add选项,可以选择 使用什么功能等。它是“addEventListener”的包装器 关键是能够删除监听器 - 这需要非匿名功能 参考
在 Myobj 中使用的函数由字符串或选项中的数字键指定
Myobj.add()
。
答案 0 :(得分:1)
Object literals
在结束undefined
之前保持}
,因此您必须使property3成为函数或使整个对象成为函数。
var Myobj = {
property1 : 'aaa',
property3 : function (){ return { a : this.property1 } }
};
或
var MyObj = function(){
this.property1 = 'aaa',
this.property3 = { a: this.property1 }
}
var MyObjInstance = new MyObj();
答案 1 :(得分:0)
如果您使用占位符数组,它会起作用:
var prop = new Array();
var Myobj = {
property1 : 'aaa',
property2 : 'bbb',
property3 : {a: prop}
};
prop.push(Myobj.property1);
window.alert(Myobj.property3.a);