我是JavaScript新手我需要一些幫助才能瞭解這個關鍵字在JavaScript中的工作原理。當我運行下面的代碼時,結果很明顯。這個如何在JavaScript中工作?
function foo() {
console.log(this.a);
}
var obj = {
a: 2,
foo: foo
};
var a = 'global a';
obj.foo(); // 2
但如果我運行下面的代碼,然後wthen打印全局a而不是obj.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' with'window.bar(); //'全球a''? –
是否有默認綁定適用?因爲bar()是普通和底層呼叫。 –