apply与call方法

34次阅读

共计 426 个字符,预计需要花费 2 分钟才能阅读完成。

apply 与 call 可以改变函数内部 this 的指向 apply 是函数对象本身身上的方法,可直接用 call 也可以调用函数

function sum (a, b, c, d){
console.lo(a+b+c+d);
console.log(this === obj)
}

var obj = {
name: “xiaoming”,
age: 18,
sex: “ 男 ”
}
sum(1,2,3,4);

毫无疑问,thid===obj 肯定是 false,因为调用函数 sum 是 window,所以 this 是 window,不等于 obj
但是如果这样子调用 sum.call(obj,1,2,3,4);this 就是指向 obj
为什么要用 call 呢?因为它的参数除了接收实际参数外,还可以接收一个参数代表 this 它的第一个参数就是你希望函数里面的 this 是谁,后面的才是实参

而 apply 的基本功能和 call 基本功能是一样的,区别在于传递参数的语法不一样实参是需要拿数组包住 sum.apply(obj,[1,2,3,4]);

正文完
 0