call/apply

作用:改变this指向

首先先讲一下,平常我们执行一个函数的时候就是test(); 这样执行其实执行的是 test.call();

我们先来看一下默认的window情况:

call/apply

call/apply

call/apply

如果不加参数,直接执行Person函数,那么里面的this就是指向window的

call/apply

使用了call之后,那么this的指向就变为obj,意思就是借用Person的功能来构建自己的对象

call/apply

call/apply

call/apply

再看下call的应用:

call/apply

这里需要理解的是,在new一个Student对象的时候,var this = {};

call/apply

然后call就首先实现了this空对象的三条语句

call和apply作用上没什么区别,用法上有点差别(传参列表不同)

call 需要把实参按照形参方式一个一个传进去

apply 需要传入一个arguments

call/apply