this指向问题
this的指向在函数定义的时候是确定不了的,只有函数执行的时候才能确定this指向谁,一般情况下this的最终指向的是那个调用他的对象。
-
全局作用域或普通函数中this指向全局对象window(注意定时器里的this指向window)(window调用)
console.log(this); function fn(){ console.log(this) } window.fn(); window.setTimeout(function(){ console.log(this); },1000);
-
方法调用中谁调用this指向谁
var o={ sayHi:function(){ console.log(this); //this指向的是o对象 } } o.sayHi(); var btn=document.querySelector('button'); btn.onclick=function(){ console.log(this); //this指向btn按钮 }
-
构造函数中this指向构造函数的实例
function Fun(){ console.log(this);//this指向fun实例对象 } var fun=new Fun();