Javascript 节点常量变量也可以更改

Javascript 节点常量变量也可以更改,javascript,node.js,Javascript,Node.js,我想保护该对象并尝试如下所示的const const foo = {'test': 'content'} foo // {test: 'content'} foo['test'] = 'change' foo // {test: 'change'} 我不知道如何正确保护字典之类的东西,有人能帮我吗 谢谢你抽出时间 正如Rayon Dabre所说,const表示变量的值不能更改。示例中变量foo的值保持不变:它仍然是同一个对象。该对象的属性已更改 为了使对象本身不可更改,可以使用o

我想保护该对象并尝试如下所示的
const

const foo = {'test': 'content'}
foo    // {test: 'content'}

foo['test'] = 'change'
foo    // {test: 'change'}
我不知道如何正确保护字典之类的东西,有人能帮我吗

谢谢你抽出时间


正如Rayon Dabre所说,
const
表示变量的值不能更改。示例中变量
foo
的值保持不变:它仍然是同一个对象。该对象的属性已更改

为了使对象本身不可更改,可以使用
object.freeze

var foo = {'test': 'content'};
Object.freeze(foo);
foo.test = 'change';
foo.test
// => "content"
见:


根据MDN,
const声明创建对值的只读引用。这并不意味着它所持有的值是不可变的,只是变量标识符不能被重新分配
@RayonDabre感谢您的回复,我如何保护字典值?
const foo = Object.freeze( {'test': 'content'} );