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