this指向的四种场景

第一、如果一个函数中有this,但是它没有以对象方法的形式调用,而是以函数名的形式执行,那么this指向的就是全局对象;

第二、如果一个函数中有this,并且这个函数是以对象方法的形式调用,那么this指向的就是调用该方法的对象;

第三、如果一个函数中有this,并且包含该函数的对象也同时被另一个对象所包含,尽管这个函数是被最外层的对象所调用,this指向的也只是它上一级的对象,

如:

var  obj = {

test;{

fun:function(){

console.log(this);

      }

   }

}

obj.test.fun();

 第四、如果一个构造函数或以类方法中有this,那么它指向该构造函数或类创建出来的实例对象。

原文地址:https://www.cnblogs.com/marune/p/10305963.html