例子1:
function f1()
function f2()
f1(); // window
f2(); // undefined
例子2:
var foo =
}var fn1 = foo.fn
fn1()
// window
// undefined
例子3:
var foo =
}foo.fn()
例子4:
var person = }}
console.log(person.brother.fn())// mike
// 最後的this指向的是brother
例子5:
var o1 =
}var o2 =
}var o3 =
}console.log(o1.fn()) //o1
console.log(o2.fn()) //o1
console.log(o3.fn()) //undefined 此時this為window,沒有text
例子5(在例子4的基礎上加上了嚴格模式):
var o1 =
}var o2 =
}var o3 =
}console.log(o1.fn()) //o1
console.log(o2.fn()) //o1
console.log(o3.fn()) //error
關於前兩種情況,建議參考徹底理解js中的this,可以直接理解例子6:
const foo =
}const bar =
foo.logname.call(bar) // mike
例子7:
function foo()
const instance = new foo()
console.log(instance.bar) // lucas
例子8:
var div = document.queryselector('div');
div.addeventlistener('click',function() );
div.onclick = function()
例子9:
const foo = )}}
foo.fn() // window
例子10:
const foo = )}}
foo.fn() //
參考:
JS基礎 this指向
解析器在呼叫函式每次都會向函式內部傳遞進乙個隱含的引數,這個隱含的引數就是this,this指向的是乙個物件,這個物件我們稱為函式執行的上下文物件 根據函式的呼叫方式的不同,this會指向不同的物件 1.以函式的形式呼叫時,this永遠都是window 2.以方法的形式呼叫時,this就是呼叫方法的...
js中this的指向
lang en charset utf 8 深入理解thistitle head 它代表函式執行時,自動生成的乙個內部物件,只能在函式內部使用。隨著函式使用場合的不同,this的值會發生變化。但是有乙個總的原則,那就是this指的是,呼叫函式的那個物件。demo1 function demo1 呼叫...
js中this的指向
this的指向在函式定義的時候是確定不了的,只有函式執行的時候才能確定this到底指向誰,實際上this的最終指向的是那個呼叫它的物件 functiona a 按照我們上面說的this最終指向的是呼叫它的物件,這裡的函式a實際是被window物件所點出來的,下面的 就可以證明。var o o.fn ...