1

重複の可能性:
Javascriptオブジェクトはどのようにしてそれ自体の値を参照できますか?

私が持っているとしましょう:

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

私はちょうど今、これが_prop2ロード時にエラーになることを発見しています。

なぜこれが機能しないのか理解できません。コードで回避しましたが、それでも理解したいと思います。

4

3 に答える 3

3

prop2を設定しようとすると、オブジェクトが初期化されていないため、prop1とmynamespaceの値は両方とも未定義です。

目的を達成する方法はいくつかあります。1つの方法は、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 に答える