这篇翻译不完整。请帮忙从英语翻译这篇文章

The handler.preventExtensions() method is a trap for Object.preventExtensions().

语法

var p = new Proxy(target, {
  preventExtensions: function(target) {
  }
});

参数

以下参数传递给 preventExtensions 方法. 它会绑定到这个handler.

target
所要拦截的目标对象.

返回值

preventExtensions 方法返回一个布尔值.

描述

handler.preventExtensions() 拦截 Object.preventExtensions()返回一个布尔值.

拦截(Interceptions)

这个trap可以拦截这些操作:

约束(Invariants)

如果违反了下列规则, proxy则会抛出一个 TypeError:

  • 如果Object.isExtensible(proxy)falseObject.preventExtensions(proxy)只能返回true

示例

以下代码演示了如何拦截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 Latest Draft (ECMA-262)
[[PreventExtensions]]
Draft  

浏览器兼容性

FeatureChromeEdgeFirefoxInternet ExplorerOperaSafari
Basic support491222 No3610
FeatureAndroid webviewChrome for AndroidEdge mobileFirefox for AndroidOpera AndroidiOS SafariSamsung Internet
Basic support4949 Yes2236105.0

参考

文档标签和贡献者

标签: 
此页面的贡献者: xyy94813, varcat
最后编辑者: xyy94813,