Object.Freeze Javascript
这个问题在这里已经有了答案:
我相信你误解了JavaScript中引用的概念。 对象在JavaScript中引用,所以当你这样做
const b = a;
  基本上,你为b分配了一个参考值a ,为了让你的代码正常工作,并实际上像你打算的那样“复制”,你需要克隆不通过引用的对象。 
  您可以使用Object.assign({}, ...)将对象克隆为新对象。  (注意,它不是很深的克隆,但它应该让你去) 
let a = { "teste" : [1,2,3] }
// I want 'b' freezed
const b = Object.assign({}, a);
Object.freeze(b);
a.teste = [4,5,6]
console.log(a)  Javascript中的对象通过引用传递,因此在您的示例中,变量a和b引用同一个对象。  Object.freeze作用于对象本身,而不是引用,所以使用a或b引用它就没有区别。  这与您刚刚设置属性的情况相同: 
let a = { "test" : [1,2,3] }
const b = a;
b.test = [4,5,6]
console.log(a)
  如果你想冻结或修改b而不影响a ,你需要先克隆它。  一种做法是使用Object.assign : 
let a = { "test" : [1,2,3] }
const b = Object.assign({}, a);
Object.freeze(b);
a.test = [4,5,6]
console.log(a)
  这是通过所有的复制a的属性为空的对象,然后将其赋值给b 。 
