2017-06-18 108 views

回答

0

簡短的答案是,全球Window對象是一個對象,可以是思想爲對象的實例,但在JavaScript中,這是所有合成

的文藝青年最愛的答案...

其他面向對象的語言來到JavaScript的如C++或Java可能會造成混淆。與其他語言相比,JavaScript不是純粹的OO語言。特別是,傳統意義上沒有被動地作爲實例和子類的模板的「類」純聲明。作爲一種解釋型語言(而不是諸如C++和Java之類的編譯語言),JavaScript基於「原型」功能;類/子類的關係是模擬通過實例如何實例化和原型參考的「鏈」通過每個函數的__proto__屬性。

儘管class關鍵字已被添加到最近的JavaScript標準中,但其實現基於先前存在的函數定義和原型鏈機制。在調用new之前,通過設置功能的prototype屬性可以實現「子分類」。這將創建一個對象實例,其__proto__屬性由prototype屬性的值定義。

當查找成員數據和方法時,如果不在當前實例中,則搜索__proto__屬性鏈,直到找到該成員或達到鏈尾。