1

可能重复:
Javascript 对象如何引用自身的值?

假设我有:

var myNamespace = {
      _prop1: 'hello',
      _prop2: _prop1 + ' you!'
};

我现在才发现这会_prop2在加载时出错。

我不明白为什么这不起作用,我已经在我的代码中解决了它,但我仍然想理解。

4

3 回答 3

3

当您尝试设置 prop2 时,该对象尚未初始化,因此 prop1 和 mynamespace 的值都未定义。

有几种方法可以实现您想要的,一种方法是将 prop2 创建为函数,以便它可以动态获取 prop1 的值

var myNamespace = {
      _prop1: 'hello',
      _prop2: function(){ return this._prop1 + ' you!' }
};

另一种方法是在 myNamespace 初始化后设置 prop2

于 2013-01-27T23:59:41.867 回答
1

你必须使用这个:

var myNamespace = {
    _prop1: 'hello'
};
myNamespace._prop2: myNamespace._prop1 + ' you!';
于 2013-01-27T23:57:59.827 回答
0

好吧,你可以做

var myNamespace = {
      _prop1: 'hello',
      _prop2: myNamespace._prop1 + ' you!'
};

我认为不可能在声明中以任何其他方式做到这一点(例如:使用“self”或“this”不起作用)

于 2013-01-27T23:53:15.757 回答