【Node.js24.x】Object::valueOf()メソッドの使い方
valueOfメソッドの使い方について、初心者にもわかりやすく解説します。
基本的な使い方
valueOfメソッドは、指定されたオブジェクトのプリミティブな値を返すメソッドです。
このメソッドは、JavaScriptエンジンがオブジェクトを数値や文字列、真偽値などの基本的なデータ型として扱おうとする際に、暗黙的に呼び出されることがあります。
Node.jsの組み込みオブジェクトであるObjectクラスに直接定義されているvalueOfメソッドのデフォルト実装は、特別な変換を行わず、呼び出し元のオブジェクト自身を返します。
しかし、JavaScriptの多くの組み込みオブジェクト(例えばDateオブジェクト、Numberオブジェクト、Stringオブジェクトなど)は、このvalueOfメソッドをそれぞれ独自にオーバーライド(再定義)しています。これにより、各オブジェクトの型に応じた最も適切なプリミティブな値を返すように動作します。例えば、DateオブジェクトのvalueOfメソッドは、その日付と時刻をミリ秒単位で表す数値を返します。これにより、Dateオブジェクトを数値演算の文脈で利用した際に、期待通りの結果を得ることができます。
開発者は、自身で作成するカスタムオブジェクトにおいてもvalueOfメソッドをオーバーライドすることで、そのオブジェクトがプリミティブな値としてどのように振る舞うかを定義し、データ型の暗黙的な変換時の挙動を柔軟に制御することが可能です。これは、オブジェクトが特定の演算子や関数で評価される際の振る舞いを決定する上で重要な役割を果たします。
構文(syntax)
1const myObject = new Object(); 2console.log(myObject.valueOf());
引数(parameters)
引数なし
引数はありません
戻り値(return)
Object
Object.prototype.valueOf() は、オブジェクト自身のプリミティブ値表現を返します。通常、これはオブジェクト自身を返しますが、特定のプリミティブ型(数値、文字列、真偽値、シンボル、BigInt)のラッパーオブジェクトでは、それぞれ対応するプリミティブ値を返します。