Reflect.isExtensible()

これは Harmony(ECMAScript 6) 提案の一部であり、実験段階の技術です。
この技術の仕様は安定していません。ブラウザ互換性の一覧表を確認してください。またこれらの構文や動作は、仕様変更などにより、新しいバージョンのブラウザでは変更される可能性があるという点に注意してください。

静的な Reflect.isExtensible() メソッドは 、オブジェクトを拡張できるかを測定します(オブジェクトに追加された新しいプロパティを持てるかどうか)。これは Object.isExtensible() に似ていますが、いくつかの 違いがあります

構文

Reflect.isExtensible(target)

パラメータ

target
拡張できるかどうかをチェックする対象のオブジェクト。

戻り値

target が拡張可能かどうかを示す Boolean 値。

スローされる例外

target が Object ではなかった場合、 TypeError がスローされる。

説明

Reflect.isExtensible メソッドは 、オブジェクトを拡張できるかを測定します(オブジェクトに追加された新しいプロパティを持てるかどうか)。これは Object.isExtensible() と同じメソッドです。

Reflect.isExtensible() を使用する

Object.isExtensible() も見てください。

// 今オブジェクトは拡張可能。 
var empty = {};
Reflect.isExtensible(empty); // === true 

// ...しかし、変更できます 
Reflect.preventExtensions(empty); 
Reflect.isExtensible(empty); // === false 

// シールドオブジェクトは拡張できないように定義される。 
var sealed = Object.seal({}); 
Reflect.isExtensible(sealed); // === false 

// フローズンオブジェクトも拡張できないように定義される。 
var frozen = Object.freeze({}); 
Reflect.isExtensible(frozen); // === false

Object.isExtensible() との違い

このメソッドへの最初の引数がオブジェクトではなかった場合(プリミティブ)、これは TypeError を引き起こします。Object.isExtensible() だと、オブジェクトではない最初の引数はオブジェクトに強制的に変換されます。

Reflect.isExtensible(1);
// TypeError: 1 はオブジェクトではない

Object.isExtensible(1);
// false

仕様

仕様 状態 コメント
ECMAScript 2015 (6th Edition, ECMA-262)
The definition of 'Reflect.isExtensible' in that specification.
Standard Initial definition.

ブラウザ実装状況

機能 Chrome Firefox (Gecko) Internet Explorer Opera Safari
Basic support 未サポート 42 (42) 未サポート 未サポート 未サポート
機能 Android Chrome for Android Firefox Mobile (Gecko) IE Mobile Opera Mobile Safari Mobile
Basic support 未サポート 未サポート 42.0 (42) 未サポート 未サポート 未サポート

関連項目

ドキュメントのタグと貢献者

 このページの貢献者: YuichiNukiyama
 最終更新者: YuichiNukiyama,