本文介绍了如何使一个JavaScript对象的原型永久化?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
我可以强制不更改对象的原型吗?
注意!有一些要求:
- 对象的行为应类似于常规对象文字(添加/删除/配置/修改对象的属性和描述符),
- 真正的唯一新限制是原型是永久性的。
因此,除了原型是永久性的之外,我不想添加任何其他限制(像Object.seal/freeze/preventExtensions
这样的工具对对象施加了更多限制)。
我是否必须修补🐒Object.prototype.__proto__
和Object.setPrototypeOf
才能实现此目的?
对象
一个选项是。防止扩展()(注意,这会锁定扩展的整个对象,而不是只锁定原型不能被修改):
数据-lang="js"数据-隐藏="假"数据-控制台="真"数据-巴贝尔="假">'use strict';
const obj = {};
Object.preventExtensions(obj);
Object.setPrototypeOf(obj, { possibleNewPrototype: 'foo' });