簡體   English   中英

如何使不可擴展的對象可擴展?

[英]How to Make a non Extensible Object to extensible?

我需要更改不可擴展的對象。 有什么辦法可以改變這個對象屬性嗎?

我已經閱讀了文檔,上面寫着“一旦對象不可擴展,就無法再次使對象可擴展。”

有什么解決方法嗎? 比如復制對象什么的?

除了復制對象之外,另一種可能性是創建一個新對象,其原型是不可擴展的對象:

 const object1 = { foo: 'foo', }; Object.preventExtensions(object1); // We can't assign new properties to object1 ever again, but: const object2 = Object.create(object1); object2.bar = 'bar'; console.log(object2); /* This will create a property *directly on* object2, so that `object2.foo` refers to the property on object2, rather than falling back to the prototype's "foo" property: */ object2.foo = 'foo 2'; console.log(object2);

原型方法很好,但與克隆相比有一個限制。 不是所有的迭代機制都會經過原型繼承的屬性

例如 for/in 循環很好,但 Object.keys(object2) 不會列出任何不會再次覆蓋的繼承屬性。

暫無
暫無

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

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