参考自https://www.cnblogs.com/pssp/p/5216085.html
首先记住:this的指向在函数定义的时候是确定不了的,只有函数执行的时候才能确定this到底指向谁,实际上this的最终指向的是那个调用它的对象。
特殊情况:
上面是一个多层的对象,对于这种情况,this指向的是它上一级的对象也就是b
另一种情况:JS中构造函数有return会怎样呢
由于返回为空对象所以输出为undefined,
如果在fn()中console输出this,那么结果是,这里的this是new fn产生的。
在JavaScript构造函数中:在没有返回值的情况下,默认会返回新对象的实例(方法中构造的)。而有返回值的情况,就返回return后的对象。