this -- apply或call调用

时间:2021-03-31 15:41:26

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的当前对象就是该参数。