JavaScriptでvaribleの範囲について混乱を感じたので、私は書いた:f();
には、私はJavascriptを練習しています
/*the console result*/
window
2
2
NaN
、this
ポイント:
function f(){
console.log(this);
var b=2;
console.log(b);
this.b++;
console.log(b);
b++;
}
f();
console.log(b);
結果は私を驚か。 b
はf();
のプライベート変数です。 this.b++
とb++
は同じ変数で動作します。
/*the right anwser in my mind*/
f
2
4
TypeError
私が期待した結果を得られなかった理由を説明してください。
'console.log(this.b)'なら 'NaN'なので、' this.b ++ 'は何もインクリメントしません。 – Luke
これは 'window'であり、関数ではありません。変数 'b'は関数内のローカル変数であるためウィンドウスコープには不明です。 –
' this.b'と 'b'は同じ変数ではありません。 –