各位小伙伴在进阶的时候总会遇到一些问题和瓶颈,业务代码写多了没有方向感,不知道该从那里入手去提升,对此我整理了一些资料,包括但不限于HTML/CSS/javaScript/Vue等多个知识点高级进阶干货需要的可以免费分享给大家,有需要者请进群点击进入1045267283

在 javascript 中,call、apply、bind 都是为了改变某个函数运行时的上下文(context)而存在的,换句话说,就是为了改变函数体内部 this 的指向。

js中call、apply、bind的区别

js中call、apply、bind的区别

call、apply、bind三者的区别,可以通过下面这个例子来看。

 

varobj = {

    x: 81,

};

varfoo = {

    getX: function() {

        returnthis.x;

    }

}

console.log(foo.getX.bind(obj)());  //81

console.log(foo.getX.call(obj));    //81

console.log(foo.getX.apply(obj));   //81

 

三个输出的都是81,但是注意看使用 bind() 方法的,他后面多了对括号

也就是说,区别是,当你希望改变上下文环境之后并非立即执行,而是回调执行的时候,使用 bind() 方法。而 apply/call 则会立即执行函数。

总结一下:

apply 、 call 、bind 三者都是用来改变函数的this对象的指向的;

apply 、 call 、bind 三者第一个参数都是this要指向的对象,也就是想指定的上下文;

apply 、 call 、bind 三者都可以利用后续参数传参;

bind 是返回对应函数,便于稍后调用;

apply 、call 则是立即调用 。

在此小编再次感谢大家对我的支持,需要更多相关资料,视频请加群点击进入1045267283

js中call、apply、bind的区别

 

js中call、apply、bind的区别

相关文章:

  • 2019-10-20
  • 2021-03-10
  • 2019-07-21
  • 2019-03-18
  • 2019-03-14
  • 2021-12-19
  • 2019-09-06
  • 2021-12-04
猜你喜欢
  • 2021-09-14
  • 2019-07-04
  • 2021-06-25
  • 2019-11-20
  • 2018-02-02
  • 2020-01-03
相关资源
相似解决方案