對象.方法();
誰調用該方法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方法