簡單一句話來說,this的指向不是在創(chuàng)建時候決定的,而是調(diào)用的時候,誰調(diào)用就指向誰。
在嚴格模式下,未指定壞境,而調(diào)用函數(shù),那么this值不會轉(zhuǎn)行為window,而是undefined,如果不是嚴格模式中,我們可以認為是window;
還有一種情況,如果一個函數(shù)中有一個this,但是這個函數(shù)包含多個對象,盡管這個函數(shù)是被最外層函數(shù)的對象所調(diào)用,this也只指向它的上一級
new可以改變this的指向(原因是new會創(chuàng)建一個空對象,會自動調(diào)用一個apply方法,函數(shù)內(nèi)部的this就會被這個空對象所替代)
另外一種情況下,當this遇到return的時候
如果返回值是一個對象,那么this指向該對象,如果不是則指向這個對象的實例,(null除外,因為它返回的也是對象實例)