This指向规则如下
- 谁调用就指向谁。
- 事件监听函数内部,this指向绑定事件监听的那个元素节点
- 构造函数内部,this指向创建的新对象。
- 对于箭头函数,由于没有自身自变量、this,所以指向环境中的this
- 一个函数没有前缀调用(被引用),也就是普通调用,this指向全局变量。在严格模式下,this为undefine。
New关键字实例化过程
-
创建一个空对象。
伪代码:let obj={ }
-
将该对象的__proto__指向类的原型对象。
伪代码:obj.__proto__=A.prototype
-
绑定该函数内部的this,指向这个对象。
伪代码:this=obj
执行函数,并且将this作为返回值返回。
伪代码:/执行代码/ ; retrun this