JavaScript中的const
关键字是否创建对不可变数据结构的不可变引用? [我假设JavaScript中存在不可变的数据结构。]
对于string
来说似乎是这样的:
var x = "asdf";
const constantX = x;
alert("before mutation: " + constantX);
x = "mutated"
alert("after mutation: " + constantX);
输出:http://jsfiddle.net/hVJ2a/
最佳答案
是的,它确实创建了一个不可变的引用,但是尚未标准化,并且并非所有浏览器都支持。
有关详细信息和兼容性,请参见此MDN article on the const
keyword。
但是,将引用的数据结构设置为不可变不会做任何事情。下面的几个答案使用Object.freeze
解决了这个问题