Webエンジニア向けプログラミング解説動画をYouTubeで配信中!
▶ チャンネル登録はこちら

【JavaScript ECMAScript】Object::Object.seal静的メソッドの使い方

Object.seal()静的メソッドの使い方について、初心者にもわかりやすく解説します。

作成日: 更新日:

基本的な使い方

Object.seal()メソッドは、指定されたオブジェクトを「シール」するメソッドです。このメソッドを適用することで、オブジェクトは新しいプロパティの追加、既存プロパティの削除ができなくなります。また、既存のすべてのプロパティは、その設定(例えば、書き込み可能属性や設定可能属性など)を変更できなくなり、再定義が不可能になります。しかし、既存のプロパティの値そのものは変更することが可能です。

例えば、Object.seal()が適用されたオブジェクトにname: "Alice"というプロパティがあった場合、このnameプロパティを削除したり、新たにage: 30というプロパティを追加したりすることはできなくなります。しかし、nameプロパティの値を"Bob"に変更することは可能です。

このメソッドは引数として渡されたオブジェクトを直接変更し、その変更された(シールされた)オブジェクトを返します。

Object.seal()は、アプリケーション内でオブジェクトの構造(つまり、持っているプロパティの種類や数)を固定しつつ、そのプロパティの値だけは実行時に更新できるようにしたい場合に利用されます。これにより、意図しないプロパティの追加や削除による不具合を防ぎ、オブジェクトの安定性を向上させることができます。特に、アプリケーションの設定オブジェクトなど、構造は不変だが値は可変であるべきデータに対して有用な保護手段となります。

公式リファレンス: Object.seal()

構文(syntax)

1const obj = {
2  property1: "value1",
3  property2: 42
4};
5Object.seal(obj);

引数(parameters)

obj

  • obj: object: 封印する対象となるオブジェクト

戻り値(return)

Object

指定されたオブジェクトが sealed 状態になった、そのオブジェクト自身を返します。Sealed 状態になると、オブジェクトのプロパティの追加や削除ができなくなりますが、既存のプロパティの値は変更可能です。

関連コンテンツ

関連プログラミング言語