// Situation 1
var a = function A() {
this.x = 1;
var b = function B () {
this.x = 2;
console.log('Method B : x = ' + this.x);
};
console.log('Method A : x = ' + this.x);
b();
}
a()を呼び出すと、結果は次のようになります。
Method A : x = 1
Method B : x = 2
しかし、「this.x = 2」を次のように削除すると、次のようになります。
// Situation 2
var a = function A() {
this.x = 1;
var b = function B () {
console.log('Method B : x = ' + this.x);
};
console.log('Method A : x = ' + this.x);
b();
}
私の結果は
Method A : x = 1
Method B : x = 1
理由がわかりません
- 状況2:関数Bの「this」は関数Aの「this」を参照しています
だが
- 状況1:関数Bで「this.x = 2」を割り当てても、関数Aの「this.x」は変更されません。
私のコードはChromev23で実行されます