要使引用类型属性只读,可以使用以下方法:
Object.freeze()
方法冻结对象,使其不可更改。Object.defineProperty()
方法定义属性,并将其设置为只读。const
关键字声明变量,将其设置为只读。以下是一个示例代码:
// 使用 Object.freeze() 方法冻结对象
const obj = {
prop1: "value1",
prop2: "value2"
};
const frozenObj = Object.freeze(obj);
console.log(frozenObj); // { prop1: "value1", prop2: "value2" }
frozenObj.prop1 = "newValue"; // 无法更改属性值
console.log(frozenObj); // { prop1: "value1", prop2: "value2" }
// 使用 Object.defineProperty() 方法定义属性
const obj2 = {
prop1: "value1",
prop2: "value2"
};
Object.defineProperty(obj2, "prop1", {
writable: false // 设置属性为只读
});
console.log(obj2); // { prop1: "value1", prop2: "value2" }
obj2.prop1 = "newValue"; // 无法更改属性值
console.log(obj2); // { prop1: "value1", prop2: "value2" }
// 使用 const 关键字声明变量
const prop1 = "value1";
console.log(prop1); // "value1"
prop1 = "newValue"; // 抛出错误:TypeError: Assignment to constant variable.
需要注意的是,以上方法只能使属性在运行时变为只读,无法在编译时确保属性的只读性。
领取专属 10元无门槛券
手把手带您无忧上云