call/apply
作用:改变this指向
首先先讲一下,平常我们执行一个函数的时候就是test(); 这样执行其实执行的是 test.call();
我们先来看一下默认的window情况:
如果不加参数,直接执行Person函数,那么里面的this就是指向window的
使用了call之后,那么this的指向就变为obj,意思就是借用Person的功能来构建自己的对象
再看下call的应用:
这里需要理解的是,在new一个Student对象的时候,var this = {};
然后call就首先实现了this空对象的三条语句
call和apply作用上没什么区别,用法上有点差别(传参列表不同)
call 需要把实参按照形参方式一个一个传进去
apply 需要传入一个arguments