阿西河

所有教程

公众号
🌙
阿西河前端的公众号

我的收藏

    最近访问  (文章)

      教程列表

      抓包专区
      测试专区

      JS Proxy preventExtensions()

      handler.preventExtensions() 方法用于设置对Object.preventExtensions()的拦截

      语法

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

      参数

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

      target

      所要拦截的目标对象.

      返回值

      preventExtensions 方法返回一个布尔值.

      描述

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

      拦截

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

      约束

      如果违反了下列规则, 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); // 抛出类型错误
      
      

      规范

      SpecificationStatusComment
      ECMAScript 2015 (6th Edition, ECMA-262)[[PreventExtensions]]StandardInitial definition.
      ECMAScript Latest Draft (ECMA-262)[[PreventExtensions]]Draft

      参考

      目录
      目录