主要是通过两种方法:
Object.defineProperty()
Object.defineProperties()
let obj = {
name: '张三',
age: 18
}
// 1.设置对象的单个属性不能被修改
// Object.defineProperty(obj, "name", {
// value: '张三',
// writable: false
// })
// obj.name = '李四' // 这行代码不会报错,但属性值不会被修改
// console.log(obj.name);
// 2.设置对象的多个属性不能被修改
Object.defineProperties(obj,
{
"name": {
value: '张三',
writable: false
},
"age": {
value: 18,
writable: false
}
}
)
obj.name = "李四" // 这行代码不会报错,但属性值不会被修改
obj.age = 20 // 这行代码不会报错,但属性值不会被修改
console.log(obj.name, obj.age)