apply与call的作用
apply与call的作用是在特定的作用域中调用函数
举个例子,这是函数没有参数的情况
num = 1;// 默认声明到全局作用域
function logNum() {
console.log(this.num);
}
logNum(); // 1
logNum.apply({
num: 99 });// 99
logNum.call({
num: 88 });// 88
如上代码可知:call和apply接收的第一个参数都是一个作用域,在作用域里面num都被赋了不一样的值,所以最后this.num输出不一样的值。
当函数有参数时,是这样的:
sum = 1;
function getSum(num1, num2) {
this.sum = this.sum + num1 + num2;
console.log(this.sum);
}
getSum(2, 3); // 6
getSum.apply({
sum: 100 }, [99, 33]); // 232
getSum.apply({
sum: 100 }, [99, 33