這里使用了Animal的apply方法,把Animal的執(zhí)行環(huán)境改成Lion被調(diào)用時的執(zhí)行環(huán)境。 這里要解釋一下,我們要想使用Lion這個“類”,通常需要new一個Lion。如: var l = new Lion(); 而new關(guān)鍵字是十分偉大的,在上段代碼中,new關(guān)鍵字完成了以下幾項工作: 1)開辟堆空間,以準(zhǔn)備存儲Lion對象 2)修改Lion對象本身的執(zhí)行環(huán)境,使得Lion函數(shù)的this指向了Lion函數(shù)對象本身。 3)調(diào)用Lion“類”的“構(gòu)造函數(shù)”,創(chuàng)建Lion對象 4)將Lion函數(shù)對象的堆地址賦值給變量l,這個時候l就指向了這個Lion函數(shù)對象 所以經(jīng)過new關(guān)鍵字以后Animal.apply(this, ["獅子"])中的this已經(jīng)指向了Lion函數(shù)對象本身了,所