瀏覽器物件模型 (BOM) 中有不同的物件,例如歷史、位置、檔案等。我可以獲得位置和檔案物件的屬性描述符,但不能獲取歷史物件的屬性描述符。為什么呢?

uj5u.com熱心網友回復:
因為歷史物件實體沒有“自己的”屬性。它們都繼承自其原型,根據定義,原型不包含在Object.getOwn[anything]函式中。當你運行它時,你還會注意到它Object.getOwnPropertyNames(history)是一個空陣列,告訴我們很多。
(與location或document不同,它們是將defineOwnProperty步驟作為其正式實體化規范的一部分的物件,history是一個具有相當特殊處理的“空”物件,但遵循物件實體化的正常規則)
相反,Object.getOwnPropertyDescriptors(Object.getPrototypeOf(history))如果您想查看其“即時”API,請使用。
轉載請註明出處,本文鏈接:https://www.uj5u.com/caozuo/422352.html
標籤:
