Object.freeze()方法接收一個參數,如果此參數是一個對象,則此方法把這個對象凍結,如果是其他類型則不會報錯,無影響。
被凍結的對象不能修改、添加、刪除其屬性或者屬性值
let obj = {"a":5};
Object.freeze(obj); //return 此obj
obj.a = 3; //不會報錯
console.log(obj); //仍然是 {"a":5}
l另外,freeze凍結的是堆內存中的值,和棧中的引用無關。
//接上面代碼
obj = 2; //這是可以成功的
用處:
一個大的數據對象裏,在你確信它不需要改變的時候,你可以給他freeze(),可以大大的增加性能。
也可用作凍結線上的配置文件中的對象,以防有人誤改。