繁体   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