call,apply和bind的秒懂區別

2022-02-25 07:32:50 字數 580 閱讀 7623

物件.方法();

誰呼叫該方法this就指向誰、

call()語法:

call()精華:

讓乙個函式成為指定物件的方法進行呼叫。

person.call(document);          //

等價於 document.person(); 因此this就指向了括號裡的document

//方法.call(物件);

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

bind():

有返回值,需要return

let 新函式 =函式.bind (obj);

//新函式的this。會永久的指向obj,所以就是this被繫結了

手動實現乙個bind方法:

function.prototype.bind = function

(target)

}

偽陣列變真陣列

array.prototype.slice.call();

es6中array.from方法

call apply和bind的原理

call 作用 call 方法就是使用乙個指定this值和若干個指定引數值的前提下呼叫摸個函式或方法。var foo function bar 如果不對this進行繫結執行bar 會返回undefined bar.call foo 1也就是說call 改變了this的指向,指向了foo 下面進行一下...

call apply和bind的用法

在改變this指向的時候,經常會把這三個方法混淆,下面就詳細的整理一下三者的用法和區別 var a var b b.sayname.call a,1,2,3 輸出 張三 6第乙個引數是改變 this 指向的物件 第二個引數必須是乙個陣列 使用後會自動執行 var a var b var arr 1,...

call apply和bind方法詳解

call方法 使用乙個指定的this值和單獨給出的乙個或多個引數來呼叫函式。var obj function getname name getname.call obj mei var obj function getname name,age 這兩種方法的用途很多,下面我就舉幾個例子。1.基本用法...