**:
**如下
複製**
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
再看乙個複雜的例子:
**如下
複製**
function animal()
}function cat()
var animal = new animal();
var cat = new cat();
animal.showname(); //結果為animal
animal.showname.call(cat); //原本cat沒有showname方法,但是通過call方法將animal的showname方法應用到cat上,因此結果為cat
如下例子:
**如下
複製**
function animal(name)
}function cat(name)
var cat = new cat(「black cat」);
cat.showname(); //瀏覽器彈出black cat
a.call(b,arg1,arg2…)
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 的區別
相同點 都是為了改變this的指向 不同點 傳參的類別不同 call 第二個引數開始接受乙個引數列表 tostring.call 1,2,3 let array 1,2,3 obj function fun a,b,c a 1,b 2,c 3 a 1,2,3 b c undefined fun.ca...