javascript 函数 (1)

call()方法

第一个实参是要调用对象的母对象,比如f.call( obj ); 就是调用obj对象的f方法,第一个参数之后的所有实参就是要传入待调用的函数的值
比如:

call方法演示
1
2
3
4
5
function list() {
return Array.prototype.slice.call( arguments); //这里就是调用arguments对象的slice方法
}

var list1 = list(1, 2, 3); // [1, 2, 3]

apply()方法

同call()方法,不同之处是call方法接受逗号分割的参数,而apply接受一个数组或者是类数组对象,上面的例子使用apply方法改写则如下:

apply方法演示
1
2
3
4
5
function list() {
return Array.prototype.slice.call( arguments); //这里就是调用arguments对象的slice方法
}

var list1 = list( [ 1, 2, 3] ); // [1, 2, 3]