call 和 apply 的区别?哪个性能更好?


1、call 和 apply 都是 function 类 原型上的方法;每一个函数作为 function 的实例都能调用这两个方法;这两个方法执行的目的都是用来改变函数中 this 指向的,让函数执行并且能改变函数中 this 指向。

2、区别:call 传参的时候要求我们给函数传参是一个个传的,而 apply 的要传的参数是以一个数组保存起来;

3、一样改变 this 的还有 bind,bind并没有立即执行函数,只是预先把处理改变函数中的 this 

4、call 的性能要比 apply 好一些(尤其是传递给函数的参数超过三个的时候)

  let arr = [10, 20, 30],

  obj = { }

  function fn (x, y, z) { }

  fn.apply (obj, arr);

  fn.call (obj, ...arr);  =》基于 ES6 的展开运算符也可以实现把数组中的每一项一次传递给函数


免责声明!

本站转载的文章为个人学习借鉴使用,本站对版权不负任何法律责任。如果侵犯了您的隐私权益,请联系本站邮箱yoyou2525@163.com删除。



 
粤ICP备18138465号  © 2018-2025 CODEPRJ.COM