handler.preventExtensions() - JavaScript 编辑
handler.preventExtensions()
方法用于设置对Object.preventExtensions()
的拦截
语法
var p = new Proxy(target, {
preventExtensions: function(target) {
}
});
参数
以下参数传递给 preventExtensions
方法. 它会绑定到这个handler.
target
- 所要拦截的目标对象.
返回值
preventExtensions
方法返回一个布尔值.
描述
handler.preventExtensions()
拦截 Object.preventExtensions()
返回一个布尔值.
拦截
这个trap可以拦截这些操作:
约束
如果违反了下列规则, proxy则会抛出一个 TypeError
:
- 如果目标对象是可扩展的,那么只能返回
false
示例
以下代码演示了如何拦截Object.preventExtensions()
。
var p = new Proxy({}, {
preventExtensions: function(target) {
console.log('called');
Object.preventExtensions(target);
return true;
}
});
console.log(Object.preventExtensions(p)); // "called"
// false
以下代码违反了约束.
var p = new Proxy({}, {
preventExtensions: function(target) {
return true;
}
});
Object.preventExtensions(p); // 抛出类型错误
规范
Specification | Status | Comment |
---|---|---|
ECMAScript 2015 (6th Edition, ECMA-262) [[PreventExtensions]] | Standard | Initial definition. |
ECMAScript (ECMA-262) [[PreventExtensions]] | Living Standard |
浏览器兼容性
BCD tables only load in the browser
The compatibility table on this page is generated from structured data. If you'd like to contribute to the data, please check out https://github.com/mdn/browser-compat-data and send us a pull request.参考
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论