call
一句话介绍 call:
调用一个对象的一个方法,用另一个对象替换当前对象。例如:B.call(A, args1,args2)
即A对象调用B对象的方法。
举个例子
function add(a, b){
return a + b
}
function sub(a, b){
return a - b
}
var a1 = add.apply(sub, [4, 2]) //sub调用add的方法
var a2 = sub.apply(add, [4, 2])
alert(a1) //6
alert(a2) //2
var a1 = add.call(sub, 4, 2)
1
2
3
4
5
6
7
8
9
10
11
12
2
3
4
5
6
7
8
9
10
11
12
apply
调用一个对象的一个方法,用另一个对象替换当前对象。例如:B.apply(A, arguments)
即A对象应用B对象的方法。
var arr1=new Array('1', '2', '3')
var arr2=new Array('4', '5', '6')
Array.prototype.push.apply(arr1, arr2)
//得到合并后数组的长度,因为push就是返回一个数组的长度
1
2
3
4
5
2
3
4
5
实际上
apply和call的功能是一样的,只是传入的参数列表形式不同。