apply 和call 應用與區別

2021-09-18 01:14:24 字數 1105 閱讀 5424

語法如下:

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();

/*多重繼承*/

function parent1()

}function parent2()

}function child()

var b = new child();

b.showsub(3,1);

b.showadd(3,1);

1.math.max可以實現陣列中最大的一項,math.min可以實現陣列中最小的一項:

var arr = [1,3,2,4];

alert("max=" + max);

alert("min=" + min);

/*在呼叫時第乙個引數給了null,這是因為沒有物件呼叫這個方法,只需要這個方法進行運算*/

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

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物件的方法。它們的共同之處 都 可以用來代替另乙個物件呼叫乙個方法,將乙...