阅读 112

bind、call、apply

相同点:

  他们的相同都是来改变this的指向问题。

不同点:

  call传参是有多个的参数,第一个是this的指向的对象,后面的是需要使用到的参数。

  apply是两个参数第一个是this的指向的对象。第二个参数是一个数组。

//例如:
var obj = {}//定义一个空的对象
function f(x,y){
console.log(x,y)
console.log(this) //this是指obj
}
f.apply(obj,[1,2]) //后面的值需要用[]括起来
f.call(obj,1,2) //直接写

 

  bind的传参数和call是一样的,但是call使用了就会直接执行这个函数,但是bind是返回一个函数。需要再执行。

//例如:
function f(){
console.log("看我怎么被调用");
console.log(this) //指向this
}
var obj = {};
f.call(obj) //直接调用函数
var g = f.bind(obj); //bind()不能调用函数
g();  //此时才调用函数

 

原文:https://www.cnblogs.com/yuxinyu/p/14737734.html

文章分类
代码人生
版权声明:本站是系统测试站点,无实际运营。本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至 XXXXXXo@163.com 举报,一经查实,本站将立刻删除。
相关推荐