js對象不變性:freeze與seal

 

1.對象常量

let obj={name:"zhangsan",age:11};
Object.defineProperty(obj,"name",{
    writable:false,//不可修改值
    configurable:false,//不可再次進行配置該屬性,不可刪除
})

2.禁止擴展新屬性preventExtensions

let obj={name:"zhangsan",age:11};
Object.preventExtensions(obj);//不可添加屬性

3.密封操作Object.seal(上述的preventExtensions再加上了configurable:false)

4.凍結操作Object.freeze(上述的seal上再加上writable:false)

 

如果不是在面試題中,儘可能不要使用這些方法,項目很少用到不可變性,若實在需要這種情況,那要考慮考慮是不是應該退一步,重新設計思路。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章