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)
如果不是在面试题中,尽可能不要使用这些方法,项目很少用到不可变性,若实在需要这种情况,那要考虑考虑是不是应该退一步,重新设计思路。