对JS中this的理解

参考自https://www.cnblogs.com/pssp/p/5216085.html

首先记住:this的指向在函数定义的时候是确定不了的,只有函数执行的时候才能确定this到底指向谁实际上this的最终指向的是那个调用它的对象。

特殊情况:对JS中this的理解_第1张图片      对JS中this的理解_第2张图片

上面是一个多层的对象,对于这种情况,this指向的是它上一级的对象也就是b

 

另一种情况:JS中构造函数有return会怎样呢

对JS中this的理解_第3张图片由于返回为空对象所以输出为undefined,

如果在fn()中console输出this,那么结果是,这里的this是new fn产生的。

在JavaScript构造函数中:在没有返回值的情况下,默认会返回新对象的实例(方法中构造的)。而有返回值的情况,就返回return后的对象。

 

你可能感兴趣的:(JS)