語法如下:
function.call(thisobj[,arg1[,arg2[,arg3]]]);
b.call(a,arg1,arg2);
相同之處:都可以用來代替另乙個物件呼叫乙個方法,講乙個函式的物件上下文從初始的上下文改變為由thisobj指定的新物件。
不同之處:傳入引數不同。
/*基本用法*/
function add(a,b)
function sub(a,b)
var a3 = add.call(sub,4,2);
var a4 = sub.call(add,4,2);
console.log(a1);
console.log(a2);
console.log(a3);
console.log(a4);
/*實現繼承*/
function animal(name)
}function cat(name)
var cat = new cat("喵喵");
cat.showname();
1.math.max可以實現陣列中最大的一項,math.min可以實現陣列中最小的一項:/*多重繼承*/
function parent1()
}function parent2()
}function child()
var b = new child();
b.showsub(3,1);
b.showadd(3,1);
2.array.prototype.push可以實現兩個陣列的合併:var arr = [1,3,2,4];
alert("max=" + max);
alert("min=" + min);
/*在呼叫時第乙個引數給了null,這是因為沒有物件呼叫這個方法,只需要這個方法進行運算*/
var arr1 = new array("1","2","3");var arr2 = new array("4","5","6");
apply 與call 的區別
function call 方法 function.call thisobj arg1 arg2 argn 它們各自的定義 call 呼叫乙個物件的乙個方法,以另乙個物件替換當前物件。例如 b.call a,args1,args2 即a物件呼叫b物件的方法。它們的共同之處 都 可以用來代替另乙個物件...
apply 與call 的區別
function call 方法 function.call thisobj arg1 arg2 argn 它們各自的定義 call 呼叫乙個物件的乙個方法,用另乙個物件替換當前物件。例如 b.call a,args1,args2 即a物件呼叫b物件的方法。它們的共同之處 都 可以用來代替另乙個物件...
apply 與call 的區別
call 方法 function.call thisobj arg1 arg2 argn 它們各自的定義 call 呼叫乙個物件的乙個方法,用另乙個物件替換當前物件。例如 b.call a,args1,args2 即a物件呼叫b物件的方法。它們的共同之處 都 可以用來代替另乙個物件呼叫乙個方法,將乙...