【Node.js24.x】Object::isExtensible()メソッドの使い方
isExtensibleメソッドの使い方について、初心者にもわかりやすく解説します。
基本的な使い方
isExtensibleメソッドは、指定されたオブジェクトに新しいプロパティを追加できるかどうかを判定するメソッドです。このメソッドは、Node.jsの組み込みオブジェクトであるObjectに属しています。
プログラミングにおいて、オブジェクトはデータとそのデータを操作する機能をまとめたものです。オブジェクトには「プロパティ」と呼ばれる属性があり、これがデータの本体となります。通常、JavaScriptのオブジェクトには、必要に応じていつでも新しいプロパティを追加できます。しかし、プログラムの信頼性や安全性を高めるために、オブジェクトの構造を固定し、それ以上変更できないようにしたい場合があります。
isExtensibleメソッドは、引数として一つのオブジェクトを受け取り、そのオブジェクトが現在「拡張可能」(つまり、新しいプロパティを追加できる状態)であるかを真偽値で返します。戻り値がtrueであれば、そのオブジェクトにはまだ新しいプロパティを追加できます。一方、falseが返される場合は、そのオブジェクトには新しいプロパティを一切追加できません。
オブジェクトが拡張不可能になるのは、主にObject.preventExtensions()、Object.seal()、またはObject.freeze()といったメソッドが適用された場合です。これらのメソッドは、オブジェクトのプロパティ追加を制限し、オブジェクトの状態を保護するために用いられます。isExtensibleメソッドは、特に外部から渡されたオブジェクトに対して、安全に操作を行う前段階でその状態を確認したい場合や、プログラム内でオブジェクトの構造変更を厳密に制御する必要がある場合に有用です。これにより、意図しないプロパティの追加を防ぎ、より堅牢なシステムを構築することができます。
構文(syntax)
1const obj = {}; 2console.log(Object.isExtensible(obj)); 3 4Object.preventExtensions(obj); 5console.log(Object.isExtensible(obj));
引数(parameters)
obj
- obj: object: 拡張可能かどうかをチェックしたいオブジェクト
戻り値(return)
boolean
指定されたオブジェクトが、プロパティの追加を許可するかどうかを示す真偽値を返します。trueであれば追加可能、falseであれば追加不可能です。