# this
# this是什么
this 就是一个指针,总是指向最后调用它的对象,即代表着它的直接调用者。
# 为什么要有this
this 机制提供了更优雅的方式来隐含地“传递”一个对象引用,导致更加干净的API设计和更容易的复用. 比如类里面的函数,使用多个内部变量
# 判断方法
优先级从上到下
- new 调用?绑定到新创建的对象
- call、apply、bind?绑定到指定的对象
- 由上下文对象调用?绑定到那个上下文对象(隐式调用)
- 默认绑定:在严格模式下绑定到undefined,否则绑定到全局对象
# 箭头函数
箭头函数不使用上述规则,上述规则无法改变箭头函数的this指向。箭头函数会继承外层函数调用的this绑定,就像self = this机制一样.
既:箭头函数中的this是在定义函数的时候绑定,而不是在执行函数的时候绑定。其执行父级上下文中的this.
# new做了什么
- 创建一个新对象
- 新对象原型指向构造函数原型对象
- 将构造函数的this指向新对象,并执行构造函数(构造函数apply)
- 返回新对象