可能重复:
How can a Javascript object refer to values in itself?
让我说我有:
var myNamespace = {
_prop1: 'hello',
_prop2: _prop1 + ' you!'
};
我现在才发现加载时_prop2
会出错。
我无法理解为什么这不起作用,我已经在我的代码中解决了这个问题,但我仍然希望理解。
答案 0 :(得分:3)
当您尝试设置prop2时,对象尚未初始化,因此prop1和mynamespace的值都未定义。
有几种方法可以实现你想要的,一种方法是将prop2创建为一个函数,这样它就可以动态获取prop1的值
var myNamespace = {
_prop1: 'hello',
_prop2: function(){ return this._prop1 + ' you!' }
};
另一种方法是在myNamespace初始化之后设置prop2
答案 1 :(得分:1)
你必须使用它:
var myNamespace = {
_prop1: 'hello'
};
myNamespace._prop2: myNamespace._prop1 + ' you!';
答案 2 :(得分:0)
嗯,你可以做到
var myNamespace = {
_prop1: 'hello',
_prop2: myNamespace._prop1 + ' you!'
};
我认为不可能在声明中以任何其他方式执行此操作(例如:使用“self”或“this”不起作用)