this指向的4种场景:
(1)如果函数中有this,函数没有以对象方法的形式调用,而是以函数名形式执行,那this指向是全局对象。
(2)如果函数中有this,并且函数以对象方法的形式调用,那this指向是调用该方法的对象。
(3)如果函数中有this,并且包含该函数的对象同时被另一个对象所包含,尽管这个函数是被最外层的对象所调用,this指向的也只是它上一级的对象。
var obj = { test : {fun : function(){console.log(this);}} } obj.test.fun();
//结果:test
(4)如果构造函数或类方法中的this指向由该构造函数或类创建出来的实例对象。