两个方法需要的参数如下:
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是一个可变长参数。
本文详细解析了JavaScript中call与apply方法的区别及应用。call与apply都用于改变函数调用的作用域,但传参方式不同。call接受一系列参数,而apply接受一个参数数组。通过实例展示了如何使用这两个方法来实现函数的灵活调用。
1463

被折叠的 条评论
为什么被折叠?



