JS中的call方法和apply方法
1、用法一:改变函数内部的this指向:(1)书本描述引用一 从书上可以看到,可以通过call()和apply()方法间接调用函数。任何函数可以作为任何对象的方法调用。 我们应该知道一个基础概念,调用的上下文。犀牛书对函数的解析中有描述到:除了实参之外,每次调用还会拥有另一个值——本次调用的上下文——这就是this关键字的值。 call和apply方法允许显式指定调用所需的this值。也就是说,用call和apply方法间接调用函数时,就是把函数作为显式指定的对象的方法调用。此时,函数内部的this会指向调用对象。

2、(2)书本描述引用二 书本中对call和apply详细一步的描述中,红色框部分,更清楚说白了,通过call和apply可以把函数f作为o对象的方法调用,但不保存。在调用函数f时,函数内部this指向了call或者apply指定的对象

4、call与apply的异同: 两个方法的用法差不多,第一个参数都是this要指向的对象。 区别在于剩余的参数传入形式不同。call的后续参数可以是任何类型,apply最多只能有两个参数,第二个参数是数组。还是直接看例子:

6、还有caller,callee,argument ....