概要
オブジェクトが拡張可能であるかどうか(新しいプロパティを追加する事が出来るか否か)を決定します。
構文
Object.isExtensible(obj)
引数
- obj
- チェックするオブジェクト
説明
オブジェクトはデフォルトでは拡張可能、つまり、新しいプロパティの追加が可能であり、(__proto__
のプロパティ __proto__
がサポートされたエンジンでは)変更することができます。オブジェクトは Object.preventExtensions
、 Object.seal
、 Object.freeze
の何れかを用いる事で拡張不能に設定する事が可能です。
例
// 新規のオブジェクトは拡張可能 var empty = {}; assert(Object.isExtensible(empty) === true); // その設定は変える事が可能 Object.preventExtensions(empty); assert(Object.isExtensible(empty) === false); // seal メソッドで封印されたオブジェクトは拡張不可と定義される var sealed = Object.seal({}); assert(Object.isExtensible(sealed) === false); // freeze メソッドで凍結されたオブジェクトも拡張不可と定義される var frozen = Object.freeze({}); assert(Object.isExtensible(frozen) === false);
ブラウザ実装状況
機能 | Firefox (Gecko) | Chrome | Internet Explorer | Opera | Safari |
---|---|---|---|---|---|
基本サポート | 4 (2.0) | 6 | 9 | 12 | 5.1 |
機能 | Firefox Mobile (Gecko) | Android | IE Mobile | Opera Mobile | Safari Mobile |
---|---|---|---|---|---|
基本サポート | ? | ? | ? | ? | ? |
※ Kangax's compat table に基づく。