1、this的指向
三种情况:
- 对象方法中的this
- 普通函数中的this
- 构造器中的this
需要注意:
- 普通函数中的this在ES5中的strict模式下有所变化
- 构造器中如果显式返回了一个对象,那么返回的将不是this所指向的对象
- call和apply用来修改传入函数的this的指向
2、call和apply
两者的第一个参数都是指定this的指向,如果传入null,那么函数中的this指向原来的对象,浏览器中就是window
不同之处:call只接受两个参数,apply可接受不固定数量的参数
他们的用处:
- 改变this指向
- 模拟Function.prototype.bind
- 借用其他对象的方法
3、Function.prototype.bind