概要
オブジェクトが拡張可能であるかどうか(新しいプロパティを追加する事が出来るか否か)を決定します。
構文
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);
ブラウザ実装状況
Update compatibility data on GitHub
| デスクトップ | モバイル | サーバー | |||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
isExtensible | Chrome 完全対応 6 | Edge 完全対応 12 | Firefox 完全対応 4 | IE 完全対応 9 | Opera 完全対応 12 | Safari 完全対応 5.1 | WebView Android 完全対応 1 | Chrome Android 完全対応 18 | Firefox Android 完全対応 4 | Opera Android 完全対応 12 | Safari iOS 完全対応 6 | Samsung Internet Android 完全対応 1.0 | nodejs 完全対応 あり |
凡例
- 完全対応
- 完全対応