1.普通函数调用时:this指向window。
function f(){ console.log(this); } f();
2.方法调用时:this指向调用此方法的对象。
var obj = { fn:function(){ console.log(this); } } obj.fn();
3.作为构造函数调用时:this指向此构造函数创建的对象。
function obj(){ this.attr1 = 1; } var object = new obj(); object();
4.作为事件绑定时的处理函数:this指向绑定该事件的对象。
btn.onclick = function(){ console.log(this); }
5.作为定时器中的处理函数:this指向window。
setInterval(function(){ console.log(this); },200);
终极总结:函数中this的指向在没有进行调用前是不明确的,只有当函数调用时this才能确定指向,谁调用的函数,this就指向谁!