📜  JavaScript | handler.preventExtensions() 方法(1)

📅  最后修改于: 2023-12-03 14:42:28.172000             🧑  作者: Mango

JavaScript | handler.preventExtensions() 方法

简介

handler.preventExtensions() 方法是 JavaScript 对象中拦截器的一种,它用于防止对象扩展。当对象已经被阻止扩展时,将无法添加新属性。该方法返回一个布尔值,指示对象是否被成功设置为不可扩展。

语法
const newObject = new Proxy(target, {
  preventExtensions: function(target) {
    // 返回一个布尔值,指示对象是否被成功设置为不可扩展
    return false;
  }
});
示例

下面是一个简单的使用 handler.preventExtensions() 方法的示例,它会禁止向 user 对象添加新的属性。

const user = {
  name: 'Tom',
  age: 20
};

const proxy = new Proxy(user, {
  preventExtensions: function(target) {
    console.log('对象被设置为不可扩展');
    return Object.preventExtensions(target);
  }
});

Object.preventExtensions(proxy);

proxy.gender = 'male'; // 不会添加 `gender` 属性,因为对象已经被设置为不可扩展

console.log(proxy); // 输出:{name: "Tom", age: 20}
注意事项

若向一个已经被阻止扩展的对象添加新属性,将会抛出 TypeError 错误。该方法只对于对象本身的改变起作用,对于对象内部属性的改变是不影响的。

参考文献