.isSealed()

オブジェクトが封印(sealed)されているか否かを調べます。

文法

Object.isSealed(obj)
引数 説明
obj 調べるオブジェクトを指定します。

オブジェクトが封印(sealed)されていれば、trueを返し、そうでなければfalseを返します。 拡張不可であり、 全てのプロパティが設定不可であり、そのため削除不可であれば、 オブジェクトは封印(sealed)されていることになります。 (ただし、書き込み不可は必須ではありません。)

// オブジェクトはデフォルトでは封印されていません。
var empty = {};
assert(Object.isSealed(empty) === false);

// 空のオブジェクトを拡張不可にすることは、
// 無意味な封印をすることになります。
Object.preventExtensions(empty);
assert(Object.isSealed(empty) === true);

// 空では無いオブジェクトの場合、
// 全てのプロパティを設定不可にしなければ、
// 上記と同じ結果にはなりません。
var hasProp = { fee: "fie foe fum" };
Object.preventExtensions(hasProp);
assert(Object.isSealed(hasProp) === false);

// 全てのプロパティを設定不可にすれば、
// オブジェクトは封印されます。
Object.defineProperty(hasProp, "fee", { configurable: false });
assert(Object.isSealed(hasProp) === true);

// オブジェクトを封印する最も簡単な方法は、
// 当然Object.sealを使用することです。
var sealed = {};
Object.seal(sealed);
assert(Object.isSealed(sealed) === true);

// 封印されたオブジェクトは、
// デフォルトで拡張不可になります。
assert(Object.isExtensible(sealed) === false);

// 封印されているオブジェクトは、
// 凍結(frozen)されている可能性がありますが、
// 必ずそうであるとは限りません。
assert(Object.isFrozen(sealed) === true); // 全てのプロパティの書き込みも不可であればtrue

var s2 = Object.seal({ p: 3 });
assert(Object.isFrozen(s2) === false); // "p"はまだ書き込み可

var s3 = Object.seal({ get p() { return 0; } });
assert(Object.isFrozen(s3) === true); // only configurability matters for accessor properties

仕様

ブラウザ互換性

デスクトップ
機能 Chrome Firefox
(Gecko)
IE Opera Safari
基本 6 4.0 (2.0) 9 × 5.1
モバイル
機能 Android Firefox
Mobile
IE
Mobile
Opera
Mobile
Safari
Mobile
基本 ? ? ? ? ?

Based on Kangax's compat table.

関連項目

 Back to top

© 2017 Mozilla Contributors
Licensed under the Creative Commons Attribution-ShareAlike License v2.5 or later.

このページは、ページトップのURL先のMozilla Developer Network(以下、MDN)のコンテンツを翻訳した内容を基に構成されています。 構成について異なる点も含まれますので、下記の項目を確認し、必要に応じて元のコンテンツをご確認ください。 もし、誤訳などの間違いを見つけましたら、 @tomofまで教えていただければ幸いです。

  • 特定のブラウザに特化しすぎている情報やあまりにも古い情報、 または試験的に導入されているようなAPIや機能については、省略していることがあります。
  • 例やデモについて、実際にページ内で動作させる関係で一部ソースコードを変更している場合や、 その例で使用しているコンテンツの単語や文章などを日本人向けに変更しいてる場合があります。
  • MDNの更新頻度が高いため、元のコンテンツと比べ情報が古くなっている可能性があります。
  • "訳注:"などの断わりを入れた上で、日本人向けの情報の追記を行っている事があります。