📅  最后修改于: 2023-12-03 14:42:28.172000             🧑  作者: Mango
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
错误。该方法只对于对象本身的改变起作用,对于对象内部属性的改变是不影响的。