有没有办法在对象上强制执行部分不可变性,如果有人试图改变它,就会抛出一个错误?
例如,让
我考虑将属性嵌套在子对象中,并像这样使用
例如,让
let obj = {a: 1, b: 2}
,我希望 obj.a
和 obj.b
不可变,但仍允许向 obj 添加更多键,即允许 obj.c = 3
。我考虑将属性嵌套在子对象中,并像这样使用
Object.freeze
:let obj = {subObj:{a: 1, b:2}};
Object.freeze(obj.subObj);
但似乎它之后会默默失败,例如obj.subObj.a = 3
不会改变a
的值,但也没有任何提示问题的迹象。有没有办法强制它抛出错误?