关于JS函数中this指向问题的总结

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就指向谁!

猜你喜欢

转载自www.cnblogs.com/ljy2017/p/12303376.html