我需要将用户结果作为
JSON对象提供,然后缓存结果.
在某些情况下,用户更改此结果对象,并且修改后的版本可供连续用户使用.为了避免这种情况,我目前正在克隆结果,但这导致了非常大的JSON对象的巨大开销.
所以我想让JSON只读取结果并避免克隆过程.如何使JSON对象不可编辑?
最佳答案 您可以使用Object.freeze():
var obj = {a: 'a', b: 'b'};
var freezeObj = Object.freeze(obj);
freezeObj.a = 'c';
console.log("%j", freezeObj); // prints {"a":"a","b":"b"}
console.log("%j", obj); // prints {"a":"a","b":"b"}
console.log(obj === freezeObj); // prints true