阿西河

所有教程

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

我的收藏

    最近访问  (文章)

      教程列表

      抓包专区
      测试专区

      JS Proxy isExtensible()

      handler.isExtensible() 方法用于拦截对对象的Object.isExtensible()。

      语法

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

      参数

      下列参数将会被传递给 isExtensible方法。 this 绑定在 handler 对象上。

      target

      目标对象。

      返回值

      isExtensible方法必须返回一个 Boolean值或可转换成Boolean的值。

      描述

      handler.isExtensible()用于拦截对对象的Object.isExtensible()。

      拦截

      该方法会拦截目标对象的以下操作:

      约束

      如果违背了以下的约束,proxy会抛出 TypeError:

      • Object.isExtensible(proxy) 必须同Object.isExtensible(target)返回相同值。也就是必须返回true或者为true的值,返回false和为false的值都会报错。

      示例

      以下代码演示Object.isExtensible().

      var p = new Proxy({}, {
        isExtensible: function(target) {
          console.log('called');
          return true;//也可以return 1;等表示为true的值
        }
      });
      
      console.log(Object.isExtensible(p)); // "called"
                                           // true
      
      

      以下代码演示违反约束的情况。

      var p = new Proxy({}, {
        isExtensible: function(target) {
          return false;//return 0;return NaN等都会报错
        }
      });
      
      Object.isExtensible(p); // TypeError is thrown
      
      

      规范

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

      另见

      目录
      目录