この割り当ての何が問題になっていますか?
base = {};
base.util = {
varA : 3,
varB : this.varA,
show : function(){
console.log(this.varB);
}
};
this.varB は未定義です。どんな助けでも大歓迎です。
ありがとう。
この割り当ての何が問題になっていますか?
base = {};
base.util = {
varA : 3,
varB : this.varA,
show : function(){
console.log(this.varB);
}
};
this.varB は未定義です。どんな助けでも大歓迎です。
ありがとう。
リテラルを宣言すると、の値はthis
メソッド内の場合にのみオブジェクトになります。それ以外の場合、その値はリテラルが宣言されているコンテキストによって異なります。
目的を達成するには、次のようにコーディングする必要があります。
base = {};
base.util = {
varA : 3,
show : function(){
// here, this refers to base.util
console.log(this.varB);
}
};
base.util.varB = base.util.varA;
base.util.show();
オブジェクトの作成に短縮形を使用する場合、this
はグローバル スコープにあり、したがって を参照しwindow
ます。オブジェクトを作成した後、window.varA
またはが定義されているかどうかを確認してください。varA