(九)限制对象的几个方法

80 阅读1分钟

1.Object.preventExtensions(obj)

作用:可以防止新属性被添加到对象中(即防止该对象被扩展)。

const obj = {
  name: "obj",
};


Object.preventExtensions(obj);
obj.age = 18;
console.log(obj.age); //undefined

2.Object.seal(obj)

作用:可以防止新属性被添加到对象中(即防止该对象被扩展),并且对象所有属性的configurable设置为false,也就是禁止 配置,删除属性

const obj = {
  name: "obj",
};
Object.seal(obj)
obj.age = 18;
obj.name = '新obj';
delete obj.name
console.log(obj); //Object { name: "新obj" }

3.Object.freeze(obj)

作用:可以防止新属性被添加到对象中(即防止该对象被扩展),并且对象所有属性的configurablewritable都设置为false

const obj = {
  name: "obj",
};
Object.freeze(obj)
obj.age = 18;
obj.name = '新obj';
console.log(obj); //Object { name: "obj" }