Proxy.handler.preventExtensions
该handler.preventExtensions()
方法是Object.preventExtensions()
的勾子。
语法
var p = new Proxy(target, {
preventExtensions: function(target) {
}
});
参数
以下参数传递给 preventExtensions
方法. 它会绑定到这个handler.
target
所要拦截的目标对象.
返回值
preventExtensions
方法返回一个布尔值.
描述
handler.preventExtensions()
拦截 Object.preventExtensions()
返回一个布尔值.
拦截
这个trap可以拦截这些操作:
Object.preventExtensions()
Reflect.preventExtensions()
限制
如果违反了下列规则, proxy则会抛出一个 TypeError
:
Object.preventExtensions(proxy)
只能返回 true
如果 Object.isExtensible(proxy)
是 false
.
- ExamplesThe following code traps
Object.preventExtensions()
.var p = new Proxy({}, { preventExtensions: function(target) { console.log('called'); Object.preventExtensions(target); return true; } }); console.log(Object.preventExtensions(p)); // "called" // falseThe following code violates the invariant.var p = new Proxy({}, { preventExtensions: function(target) { return true; } }); Object.preventExtensions(p); // TypeError is thrownSpecificationsSpecificationStatusCommentECMAScript 2015 (6th Edition, ECMA-262)The definition of '[PreventExtensions]' in that specification.StandardInitial definition.ECMAScript 2017 Draft (ECMA-262)The definition of '[PreventExtensions]' in that specification.DraftBrowser compatibilityFeatureChromeFirefox (Gecko)Internet ExplorerOperaSafariBasic support?22 (22)???FeatureAndroidChrome for AndroidFirefox Mobile (Gecko)IE MobileOpera MobileSafari MobileBasic support??22.0 (22)???See also
本文档系腾讯云开发者社区成员共同维护,如有问题请联系 cloudcommunity@tencent.com