js中this指向的三種情況
阿新 • • 發佈:2018-11-12
js中this指向的幾種情況
一、全域性作用域或者普通函式自執行中this指向全域性物件window
//全域性作用域
console.log(this);//Window
//普通函式
function fn(){
console.log(this); //Window
}
fn(); //函式加括號呼叫叫函式自執行,函式自執行時,內部的this指向頂層物件/window
二、事件函式內部的this指向事件源:注意在事件函式中如果包含普通函式,普通函式自執行後,內部this還是指向window
//事件函式內部的this指向事件源 document.body.onclick = function(){ this.style.height = "1000px"; console.log(this); //body物件 function fn(){ console.log(this); //Window } fn(); //函式加括號呼叫叫函式自執行,函式自執行時,內部的this指向頂層物件/window };
三、物件方法呼叫時,this指向呼叫的物件
let obj = { name : "lanlan", fn : function(){ console.log(this); }, lacy : { name : "didi", fn : function(){ let num = 10; console.log(this); } } }; obj.fn(); //obj obj.dudu.fn(); //lacy