簡體   English   中英

JavaScript對象在哪里存儲它是否可擴展?

[英]Where does a JavaScript object store whether it's extensible or not?

如問題中所述,在JavaScript中,對象存儲在哪里是否可擴展?

Object.isExtensible()可以訪問屬性值,但是這些信息存儲在哪里?

謝謝!

在其[[Extensible]]內部插槽中 ,它不能直接從您的代碼訪問(當然,可通過Object.isExtensibleReflect.isExtensible訪問)。

從鏈接:

每個普通對象都有一個布爾值[[Extensible]]內部插槽,用於控制是否可以將屬性添加到對象中。 如果[[Extensible]]內部插槽的值為false,則可能無法向對象添加其他屬性。 此外,如果[[Extensible]]為false ,則不能修改對象的[[Prototype]]內部插槽的值。 一旦對象的[[Extensible]]內部插槽的值設置為false,它可能不會隨后更改為true

內部插槽有點像屬性,但不是繼承的,也不能(直接)從程序代碼訪問。 對象內部方法和內部插槽

內部插槽對應於與對象關聯並由各種ECMAScript規范算法使用的內部狀態。 內部插槽不是對象屬性,不會繼承它們。 根據特定的內部插槽規范,此狀態可能包含任何ECMAScript語言類型或特定ECMAScript規范類型值的值。 除非另有明確說明,否則內部插槽將作為創建對象的過程的一部分進行分配,並且可能無法動態添加到對象。 除非另有說明,否則內部槽的初始值為undefined值。 本規范中的各種算法創建具有內部插槽的對象。 但是,ECMAScript語言沒有提供將內部插槽與對象關聯的直接方法。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM