1、方法定義
call方法:
語法:call([thisobj[,arg1[, arg2[, [,.argn]]]]])
定義:呼叫乙個物件的乙個方法,以另乙個物件替換當前物件。
說明:
call 方法可以用來代替另乙個物件呼叫乙個方法。call 方法可將乙個函式的物件上下文從初始的上下文改變為由 thisobj 指定的新物件。
如果沒有提供 thisobj 引數,那麼 global 物件被用作 thisobj。
定義:應用某一物件的乙個方法,用另乙個物件替換當前物件。
說明:
如果 argarray 不是乙個有效的陣列或者不是 arguments 物件,那麼將導致乙個 typeerror。
如果沒有提供 argarray 和 thisobj 任何乙個引數,那麼 global 物件將被用作 thisobj, 並且無法被傳遞任何引數
它們的不同之處:
call:則是直接的引數列表,主要用在js物件各方法互相呼叫的時候,使當前this例項指標保持一致,或在特殊情況下需要改變this指標。如果沒有提供 thisobj 引數,那麼 global 物件被用作 thisobj。
示例**:
(1)基本用法
(2)實現繼承function add(a,b)
function sub(a,b)
alert(a1); //
6
alert(a2); //
2/*call的用法*/
var a1 = add.call(sub,4,2);
(3)多重繼承function
animal
(name)
}function
cat(name)
var cat = new cat("咕咕");
cat.showname();
/*call的用法*/
animal.call(this,name);
function
class10
()
}function
class11
()
}function
class12
()var c2 = new class12();
c2.showsub(3,1); //2
c2.showadd(3,1); //4
1.
var arr1=new
array("1","2","3");
2.var arr2=new
array("4","5","6");
3.
call 和apply 的區別
call方法 語法 call thisobj,object 定義 呼叫乙個物件的乙個方法,以另乙個物件替換當前物件 說明 call方法可以用來代替另乙個物件呼叫乙個方法。call方法可將乙個函式的物件上下文從初始的上下文改變為由thisobjext指定的新物件。如果沒有提供thisobj引數,那麼g...
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 再看乙個複雜的...
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...