简单一句话来说,this的指向不是在创建时候决定的,而是调用的时候,谁调用就指向谁。
在严格模式下,未指定坏境,而调用函数,那么this值不会转行为window,而是undefined,如果不是严格模式中,我们可以认为是window;
还有一种情况,如果一个函数中有一个this,但是这个函数包含多个对象,尽管这个函数是被最外层函数的对象所调用,this也只指向它的上一级
new可以改变this的指向(原因是new会创建一个空对象,会自动调用一个apply方法,函数内部的this就会被这个空对象所替代)
另外一种情况下,当this遇到return的时候
如果返回值是一个对象,那么this指向该对象,如果不是则指向这个对象的实例,(null除外,因为它返回的也是对象实例)
网友评论