两个方法需要的参数如下:
call(作用域,参数1,参数2,参数3,…)
apply(作用域,[参数1,参数2,参数3,…])
function sayName(){
var name = this.name;
console.log(name);
}
var p = {
name:'Alien'
}
var name = 'King';
sayName.call(this); // King
sayName.call(p); //Alien
sayName.apply(this); // King
sayName.apply(p); // Alien
function sum(num1,num2){
return num1 + num2;
}
sum.call(this,1,3); // return 4
sum.apply(this,[1,3]); // return 4
apply和call都是对函数的调用只是传入参数的方式不同,apply第二个参数接收一个数组,而apply是一个可变长参数。