关于JS中call()、apply()、bind()的区别讲解-网络教程-学码思教育
全国热线

025-86901720

全国监督投诉热线:9:00-23:00

关于JS中call()、apply()、bind()的区别讲解

JS中call()、apply()、bind()的功能差不多,但是实际是有比较明显的区别的,今天的学码思Web前端培训​老师给大家关于JS中call()、apply()、bind()的区别讲解一下,一起来做好笔记吧。

  JS中call()、apply()、bind()的功能差不多,作用都是都是用来改变函数的this对象的指向、第一个参数都是this要指向的对象、都可以利用后续参数传参,但是实际是有比较明显的区别的,今天的学码思Web前端培训老师给大家关于JS中call()、apply()、bind()的区别讲解一下,一起来做好笔记吧。


  先看一个例子:

  关于JS中call()、apply()、bind()的区别讲解


  本身没什么好说的,显示的肯定是小王 , 男 , 今年24。

  

  那么如何用xw的say方法来显示xh的数据呢。


  对于call可以这样:

  关于JS中call()、apply()、bind()的区别讲解


  对于apply可以这样:

  关于JS中call()、apply()、bind()的区别讲解


  而对于bind来说需要这样:

  关于JS中call()、apply()、bind()的区别讲解


  如果直接写xw.say.bind(xh)是不会有任何结果的,看到区别了吗?call和apply都是对函数的直接调用,而bind方法返回的仍然是一个函数,因此后面还需要()来进行调用才可以。


  那么call和apply有什么区别呢?学码思的老师把例子稍微改写一下。

  关于JS中call()、apply()、bind()的区别讲解


  可以看到say方法多了两个参数,我们通过call/apply的参数进行传参。 


  对于call来说是这样的

  关于JS中call()、apply()、bind()的区别讲解


  而对于apply来说是这样的

  关于JS中call()、apply()、bind()的区别讲解


  看到区别了吗,call后面的参数与say方法中是一一对应的,而apply的第二个参数是一个数组,数组中的元素是和say方法中一一对应的,这就是两者最大的区别。 


  以上是关于JS中call()、apply()、bind()的区别讲解,所以说粗心的同学都是凭感觉卵用,并没有注意更深处的细节,等到BUG来了才焦头烂额的,现在不花时间多了解一下,以后就要花更多时间找BUG,所以Web前端学习是一个抠细节的过程,发明JS的人既然设置了这三个方法,那一定有他的道理。>>>Web前端开发中容易犯错的几个点


上一篇:改善NODE.JS应用性能的窍门
下一篇:简析JS中Dictionary对象如何使用

相关推荐

免费试听 | 学费咨询 | 在线报名 | 申请补贴 | 软件培训 | 网站地图

2016-2020 南京学码思教育科技有限公司 .All Rights Reserved

苏ICP备16033487号 www.njxms.com.cn

全国热线

400-080-3312

全国监督服务热线:9:00-23:00