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