阿西河

所有教程

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

我的收藏

    最近访问  (文章)

      教程列表

      抓包专区
      测试专区

      JS Object.isExtensible()

      概述

      **Object.isExtensible()** 方法判断一个对象是否是可扩展的(是否可以在它上面添加新的属性)。

      语法

      Object.isExtensible(obj)
      

      参数

      obj

      需要检测的对象

      返回值

          表示给定对象是否可扩展的一个Boolean 。

      描述

      默认情况下,对象是可扩展的:即可以为他们添加新的属性。以及它们的 __proto__ 属性可以被更改。Object.preventExtensionsObject.sealObject.freeze 方法都可以标记一个对象为不可扩展(non-extensible)。

      例子

      // 新对象默认是可扩展的.
      var empty = {};
      Object.isExtensible(empty); // === true
      
      // ...可以变的不可扩展.
      Object.preventExtensions(empty);
      Object.isExtensible(empty); // === false
      
      // 密封对象是不可扩展的.
      var sealed = Object.seal({});
      Object.isExtensible(sealed); // === false
      
      // 冻结对象也是不可扩展.
      var frozen = Object.freeze({});
      Object.isExtensible(frozen); // === false
      
      

      注意

      在 ES5 中,如果参数不是一个对象类型,将抛出一个 TypeError 异常。在 ES6 中, non-object 参数将被视为一个不可扩展的普通对象,因此会返回 false 。

      Object.isExtensible(1);
      // TypeError: 1 is not an object (ES5 code)
      
      Object.isExtensible(1);
      // false                         (ES6 code)
      
      

      规范

      SpecificationStatusComment
      ECMAScript 5.1 (ECMA-262) Object.isExtensibleStandardInitial definition.
      Implemented in JavaScript 1.8.5
      ECMAScript 2015 (6th Edition, ECMA-262)Object.isExtensibleStandard 

      相关链接

      目录
      目录