キーワードの背後にある一般的な考え方はthis
理解していますが、実際に何を指しているのかを理解するのに苦労しています. たとえば、これらの例題の両方で、私は間違った数を推測しました。
質問 1 については、関数内の無名関数の外側で this.x を参照しているため、アラートは '5' になると言いました。
質問2では、この行なのでアラートは5になると思いました
var alertX = o.alertX;
変数 o 内のプロパティ x の値 5 を、次の行の関数呼び出しとなる新しい変数 'alertX' にバインドします。
なぜ私が間違っているのか説明できますか?
var question1 = function() {
this.x = 5;
(function() {
var x = 3;
this.x = x;
})();
alert(this.x);
};
var answer1 = 3;
var question2 = function() {
this.x = 9;
var o = {
'x':5,
'alertX':function() { alert(this.x); }
};
var alertX = o.alertX;
alertX();
}
var answer2 = 9;