JavaScriptの新機能こののキーワードはJavaScriptで動作します。次のコードを実行すると、結果は明らかです。「this」はJavaScriptでどのように機能しますか?
function foo() {
console.log(this.a);
}
var obj = {
a: 2,
foo: foo
};
var a = 'global a';
obj.foo(); // 2
ただし、次のコードを実行すると、obj.aの代わりにグローバルなaが印刷されます。
function foo(){
console.log(this.a);
}
var obj = {
a:2,
foo:foo
}
var bar = obj.foo;
var a = 'global a';
bar();
この印刷用のグローバルな理由を教えてください。
、あなたのファイルの先頭に' 。汚いモード期間をターゲットにしないでください。 –
'window'がグローバルスコープであると仮定すると、' window.obj.foo();を比較するとより明らかになります。 // 2 'を 'window.bar(); // 'グローバルa''? –
デフォルトバインディングが適用されますか? bar()は平らで下塗りされているからです。 –