this 指向问题
一般情况下 this 的最终指向是调用它的元素对象
1.全局作用域或者普通函数中 this 指向全局对象 window (注意定时器里面的 this 指向 window )
console.log('全局----->',this)
function fn(){
console.log('方法----->',this)
}
fn();
setTimeout(function(){
console.log('定时器----->',this)
},1000)
2.方法调用中谁调用 this 就指向谁
var obj = {
sayHi:function(){
// this 指向 obj 这个对象
console.log('对象------>',this)
}
}
obj.sayHi();
var btn = document.querySelector('button');
btn.addEventListener('click',function(){
// this 指向 btn 这个按钮对象
console.log('按钮------>',this)
})
3.构造函数中 this 指向构造函数的实例
function Fun(){
// this 指向的是 Fun 实例对象
console.log('构造------>',this)
}
var fun = new Fun()
4.匿名函数中 this 指向window
var name = 'The Window';
var object = {
name:"My object",
getNameFunc : function(){
return function(){
return name;
}
}
};
console.log(object.getNameFunc()())