节点const变量也会被更改

时间:2016-03-25 06:13:46

标签: javascript node.js

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

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

foo['test'] = 'change'
foo    // {test: 'change'}

我不知道如何正确地保护像字典这样的对象,有人可以帮帮我吗?

谢谢你的时间。

问候。

2 个答案:

答案 0 :(得分:6)

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

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

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

答案 1 :(得分:1)

请参阅Object.freeze

const foo = Object.freeze( {'test': 'content'} );