this -- apply或call调用

Posted Lulin1

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了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的当前对象就是该参数。

 

以上是关于this -- apply或call调用的主要内容,如果未能解决你的问题,请参考以下文章

this详解下

构造函数继承--call,apply

call和apply

call和apply方法的异同

call和apply的运用

call ,apply ,bind 函数的模拟实现