【JavaScript ECMAScript】Object::Object.seal静的メソッドの使い方
Object.seal()静的メソッドの使い方について、初心者にもわかりやすく解説します。
基本的な使い方
Object.seal()メソッドは、指定されたオブジェクトを「シール」するメソッドです。このメソッドを適用することで、オブジェクトは新しいプロパティの追加、既存プロパティの削除ができなくなります。また、既存のすべてのプロパティは、その設定(例えば、書き込み可能属性や設定可能属性など)を変更できなくなり、再定義が不可能になります。しかし、既存のプロパティの値そのものは変更することが可能です。
例えば、Object.seal()が適用されたオブジェクトにname: "Alice"というプロパティがあった場合、このnameプロパティを削除したり、新たにage: 30というプロパティを追加したりすることはできなくなります。しかし、nameプロパティの値を"Bob"に変更することは可能です。
このメソッドは引数として渡されたオブジェクトを直接変更し、その変更された(シールされた)オブジェクトを返します。
Object.seal()は、アプリケーション内でオブジェクトの構造(つまり、持っているプロパティの種類や数)を固定しつつ、そのプロパティの値だけは実行時に更新できるようにしたい場合に利用されます。これにより、意図しないプロパティの追加や削除による不具合を防ぎ、オブジェクトの安定性を向上させることができます。特に、アプリケーションの設定オブジェクトなど、構造は不変だが値は可変であるべきデータに対して有用な保護手段となります。
構文(syntax)
1const obj = { 2 property1: "value1", 3 property2: 42 4}; 5Object.seal(obj);
引数(parameters)
obj
- obj: object: 封印する対象となるオブジェクト
戻り値(return)
Object
指定されたオブジェクトが sealed 状態になった、そのオブジェクト自身を返します。Sealed 状態になると、オブジェクトのプロパティの追加や削除ができなくなりますが、既存のプロパティの値は変更可能です。