We're looking for a user researcher to understand the needs of developers and designers. Is this you or someone you know? Check out the post: https://mzl.la/2IGzdXS

概要

オブジェクトが拡張可能であるかどうか(新しいプロパティを追加する事が出来るか否か)を決定します。

構文

Object.isExtensible(obj)

引数

obj
チェックするオブジェクト

説明

オブジェクトはデフォルトでは拡張可能、つまり、新しいプロパティの追加が可能であり、(__proto__ のプロパティ __proto__ がサポートされたエンジンでは)変更することができます。オブジェクトは Object.preventExtensionsObject.sealObject.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);

ブラウザ実装状況

We're converting our compatibility data into a machine-readable JSON format. This compatibility table still uses the old format, because we haven't yet converted the data it contains. Find out how you can help!

機能 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 に基づく。

関連情報

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

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