this -- apply或call调用

 applycall 这两个方法可以切换函数执行的上下文环境,也就是改变this绑定的对象。apply和call比较类似,区别在于传入参数时一个要求是数组,一个要求是分开传入。所以我们以apply为例:

var name = "window";  
      
var someone = {  
    name: "Bob",  
    showName: function(){  
        alert(this.name);  
    }  
};  
  
var other = {  
    name: "Tom"  
};     
   
someone.showName();     //Bob  
someone.showName.apply();    //window  
someone.showName.apply(other);    //Tom  

可以看到,正常访问对象中方法时,this指向对象。使用了apply后,apply无参数时,this的当前对象是全局,apply有参数时,this的当前对象就是该参数。

原文地址:https://www.cnblogs.com/lulin1/p/7324495.html