call和啊apply的區別

2021-08-30 08:47:23 字數 1583 閱讀 1092

>

()方法

function

.(thisobj[

, argarray]

)>

call

()方法

function

.call

(thisobj[

, arg1[

, arg2[,[

,...argn]]]

]);

call:呼叫乙個物件的乙個方法,用另乙個物件替換當前物件。例如:b.call(a, args1,args2);即a物件呼叫b物件的方法。

都「可以用來代替另乙個物件呼叫乙個方法,將乙個函式的物件上下文從初始的上下文改變為由thisobj指定的新物件」。

function

add(a,b)

function

sub(a,b)

var a1 = add.

(sub,[4

,2])

;//sub呼叫add的方法

var a2 = sub.

(add,[4

,2])

;alert

(a1)

;//6

alert

(a2)

;//2

//call的用法

var a1 = add.

call

(sub,4,

2);

function

animal

(name)

}function

cat(name)

var cat =

newcat

("咕咕");

cat.

showname()

;/*call的用法*/

animal.

call

(this

,name)

;

function

class10()

}function

class11()

}function

class12()

var c2 =

newclass12()

;c2.

showsub(3

,1);

//2c2.

showadd(3

,1);

//4

數的方式傳遞給方法)

這塊在呼叫的時候第乙個引數給了null,這是因為沒有物件去呼叫這個方法,我只需要用這個方法幫我運算,得到返回的結果就行,所以直接傳遞了乙個null過去。

var arr1=

newarray

("1"

,"2"

,"3");

var arr2=

newarray

("4"

,"5"

,"6");

array.prototype.push.

(arr1,arr2)

;//得到合併後陣列的長度,因為push就是返回乙個陣列的長度

call 和apply 的區別

call方法 語法 call thisobj,object 定義 呼叫乙個物件的乙個方法,以另乙個物件替換當前物件 說明 call方法可以用來代替另乙個物件呼叫乙個方法。call方法可將乙個函式的物件上下文從初始的上下文改變為由thisobjext指定的新物件。如果沒有提供thisobj引數,那麼g...

call和apply的區別

1 方法定義 call方法 語法 call thisobj arg1 arg2 argn 定義 呼叫乙個物件的乙個方法,以另乙個物件替換當前物件。說明 call 方法可以用來代替另乙個物件呼叫乙個方法。call 方法可將乙個函式的物件上下文從初始的上下文改變為由 thisobj 指定的新物件。如果沒...

call和apply的區別

如下 複製 function add a,b function reduce a,b add.call reduce,1,3 將add方法運用到reduce,結果為4 如下例 如下 複製 function b b window b.call window b.call a 2,3 a 再看乙個複雜的...