Object.freeze() 可以冻结一个对象。被冻结的对象有以下几个特点:
- 不能添加新属性
- 不能删除已有属性
- 不能修改已有属性的可枚举性、可配置性、可写性
- 不能修改已有属性的值
- 不能修改原型
- 属于浅冻结,复杂对象里面的对象仍然可以修改
我们知道,const本意是无法修改的一个值,但只对简单类型生效,在使用const定义一个对象时,我们依然可以修改这个对象,并且不会报错,所以我们如果要达到无法修改的效果,就可以用Object.freeze()实现。
在Vue中,使用Object.freeze()冻结一个不会被改变的对象时,能大幅提高运行效率,因为vue会对Object.freeze()进行过滤,当遇到的时候就不会再遍历该数据对象。