call apply bind應用的介紹

2021-09-23 14:29:54 字數 1456 閱讀 8253

call()方法呼叫乙個函式, 其具有乙個指定的this值和分別地提供的引數(引數的列表)。

語法:

fun.

call

(thisarg[

, arg1[

, arg2[

,...]]

])

引數:

arg1, arg2, ...

語法:

fun.

(thisarg,

[argsarray]

)

引數:

fun.

(this,[

'eat'

,'bananas'

])

var

func

=function

(arg1, arg2)

;

就可以通過如下方式來呼叫:

func.

call

(this

, arg1, arg2)

;func.

(this

,[arg1, arg2]

)

bind() 函式會建立乙個新函式(稱為繫結函式),新函式與被調函式(繫結函式的目標函式)具有相同的函式體(在 ecmascript 5 規範中內建的call屬性)。

當目標函式被呼叫時 this 值繫結到 bind() 的第乙個引數,該引數不能被重寫。繫結函式被呼叫時,bind() 也接受預設的引數提供給原函式。

乙個繫結函式也能使用new操作符建立物件:這種行為就像把原函式當成構造器。提供的 this 值被忽略,同時呼叫時的引數被提供給模擬函式。

語法:

fun.

bind

(thisarg[

, arg1[

, arg2[

,...]]

])

引數:

arg1, arg2, …

返回值:

返回由指定的this值和初始化引數改造的原函式拷貝。

示例:

function

latebloomer()

// declare bloom after a delay of 1 second

latebloomer.prototype.

bloom

=function()

;latebloomer.prototype.

declare

=function()

;var flower =

newlatebloomer()

;flower.

bloom()

;// 一秒鐘後, 呼叫'declare'方法

小結

bind

call apply bind方法及其應用

1 call 方法可以呼叫乙個函式 functionfn fn.call window2 call 方法可以改變函式的this指向 var o function fn x,y 利用call方法後this指向了o這個物件 fn.call o,1,2 call方法總結 var o function fn...

call, apply, bind方法詳解

function a x,y var c a.call c,5,6 5 6 arguments 5,6 再看例子 function person age,male var person1 person.call person1,20,female person1 var person var per...

手寫call,apply,bind函式

涉及面試題 考慮兩點 function.prototype.mycall function context context context window 和上面的 一樣 context.fn this const args arguments slice 1 const result context...