私が持っているとしましょう:
var myNamespace = {
_prop1: 'hello',
_prop2: _prop1 + ' you!'
};
私はちょうど今、これが_prop2
ロード時にエラーになることを発見しています。
なぜこれが機能しないのか理解できません。コードで回避しましたが、それでも理解したいと思います。
私が持っているとしましょう:
var myNamespace = {
_prop1: 'hello',
_prop2: _prop1 + ' you!'
};
私はちょうど今、これが_prop2
ロード時にエラーになることを発見しています。
なぜこれが機能しないのか理解できません。コードで回避しましたが、それでも理解したいと思います。
prop2を設定しようとすると、オブジェクトが初期化されていないため、prop1とmynamespaceの値は両方とも未定義です。
目的を達成する方法はいくつかあります。1つの方法は、prop2を関数として作成して、prop1の値を動的に取得できるようにすることです。
var myNamespace = {
_prop1: 'hello',
_prop2: function(){ return this._prop1 + ' you!' }
};
別の方法は、myNamespaceが初期化された後にprop2を設定することです。
これを使用する必要があります:
var myNamespace = {
_prop1: 'hello'
};
myNamespace._prop2: myNamespace._prop1 + ' you!';
さて、あなたはすることができます
var myNamespace = {
_prop1: 'hello',
_prop2: myNamespace._prop1 + ' you!'
};
宣言で他の方法でそれを行うことはできないと思います(例:「self」または「this」の使用は機能しません)