Reflect.isExtensible()

このロケールの翻訳が存在しないため、英語バージョンのコンテンツを表示しています。 Help us translate this article!

静的な 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)
Reflect.isExtensible の定義
標準 Initial definition.

ブラウザ実装状況

現在、互換性データを可読形式の JSON フォーマットに置き換えているところです。 この互換性一覧は古い形式を使っており、これに含まれるデータの置き換えが済んでいません。 手助けしていただける場合は、こちらから!

機能 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) 未サポート 未サポート 未サポート

関連項目