javascript中call與apply的區別

2021-09-13 03:10:50 字數 1579 閱讀 6898

123

45

/*call()方法*/

function.call(thisobj[, arg1[, arg2[, [,...argn]]]]);

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

##它們的共同之處:

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

(1)基本用法

123

4567

891011

1213

function

add(a,b)

function

sub(a,b)

alert(a1); //6

alert(a2); //2

/*call的用法*/

var a1 = add.call(sub,4,2);

(2)實現繼承

123

4567

891011

1213

1415

16

function

animal(name)

}function

cat(name)

var cat = new cat("咕咕");

cat.showname();

/*call的用法*/

animal.call(this,name);

(3)多重繼承

123

4567

891011

1213

1415

1617

1819

2021

22

function

class10()

}function

class11()

}function

class12()

var c2 = new class12();

c2.showsub(3,1); //2

c2.showadd(3,1); //4

(1)math.max 可以實現得到陣列中最大的一項

數的方式傳遞給方法)

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

(2)array.prototype.push可以實現兩個陣列的合併

123

var arr1=new array("1","2","3");

var arr2=new array("4","5","6");

Javascript中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 再看乙個複雜的例子 ...

javascript中call與apply的區別

123 45 call 方法 function.call thisobj arg1 arg2 argn call 呼叫乙個物件的乙個方法,用另乙個物件替換當前物件。例如 b.call a,args1,args2 即a物件呼叫b物件的方法。它們的共同之處 都 可以用來代替另乙個物件呼叫乙個方法,將乙個...

JavaScript中的call和apply應用

舉個栗子 const obj1 const obj2 console.log obj1.getname microzz console.log obj1.getname.call obj2 zhaohui 有的時候我們會覺得 document.getelementbyid這個方法太長了,我們會嘗試用...