我想要一个不可变的对象字段。我试过:
const a = 1;
var o = {
x: 'This is mutable',
y: a // This should not be mutable.
};
o.y = 'Changed';
console.log(o);
字段 y
被重新分配。
有什么办法可以做到这一点吗?
最佳答案
使用Object.defineProperty()
并将configurable设置为false。
var o = {
x: 'This is mutable'
};
Object.defineProperty(o, "y", { configurable: false, writable: false });
console.log(o);
o.y 的行为就像单独调用 Object.freeze 一样。
关于Javascript定义常量对象属性,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48925107/