this 各种情况和new的过程

70 阅读1分钟

this 的情况:

1、以函数形式调用时,this 永远都是 window

2、以方法的形式调用时,this 是调用方法的对象

3、以构造函数的形式调用时,this 是新创建的那个对象

4、使用 call 和 apply 调用时,this 是指定的那个对象

5、箭头函数:箭头函数的 this 看外层是否有函数

如果有,外层函数的 this 就是内部箭头函数的 this

如果没有,就是 window

6、特殊情况:通常意义上 this 指针指向为最后调用它的对象。这里需要注意的一点就是

如果返回值是一个对象,那么 this 指向的就是那个返回的对象,如果返回值不是一个对象那么 this

还是指向函数的实例

New 操作符

1、创建一个空对象: 并且 this 变量引入该对象,同时还继承了函数的原型

2、设置原型链 空对象指向构造函数的原型对象

3、执行函数体 修改构造函数 this 指针指向空对象,并执行函数体

4、判断返回值 返回对象就用该对象,没有的话就创建一个对象