call,apply和bind的秒懂區別


對象.方法();

誰調用該方法this就指向誰、

call()語法:

call()精華:

讓一個函數成為指定對象的方法進行調用。

Person.call(document);          //等價於 document.Person();  因此this就指向了括號里的document
//方法.call(對象);

apply():

原理是一樣,只是傳參的形式不一樣

apply是以數組的形式傳參(arguments)

 

bind():

有返回值,需要return

let 新函數 = 函數.bind (obj);
//新函數的this。會永久的指向obj,所以就是this被綁定了

 

手動實現一個bind方法:

Function.prototype.bind = function(target){
  var fn = this;
  return function(){
     fn.apply(target , arguments);
  }
}

 偽數組變真數組

       Array.prototype.slice.call();
       ES6中Array.from方法


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM