【JavaScript ECMAScript】Symbol::Symbol.prototype.valueOfインスタンスメソッドの使い方
Symbol.prototype.valueOf()インスタンスメソッドの使い方について、初心者にもわかりやすく解説します。
基本的な使い方
Symbol.prototype.valueOf()メソッドは、SymbolオブジェクトのプリミティブなSymbol値を返すメソッドです。このメソッドは、JavaScriptエンジンがSymbolオブジェクトをプリミティブな値として利用する必要がある際に、内部的に自動で呼び出されます。例えば、SymbolオブジェクトをプリミティブなSymbol値と比較する際や、特定の操作でオブジェクトからプリミティブ値への型変換が求められる文脈などで利用されます。
通常、システム開発においてこのvalueOf()メソッドを開発者が直接呼び出すことは稀ですが、明示的に呼び出してSymbolオブジェクトからプリミティブなSymbol値を取り出すことも可能です。JavaScriptでは、プリミティブなSymbol値と、それを包んだSymbolオブジェクトという二つの形式が存在し、valueOf()メソッドはオブジェクトからそのプリミティブな実体を取り出す役割を果たします。
SymbolはECMAScript 2015(ES6)で導入された新しいプリミティブデータ型で、他のいかなる値とも衝突しない、ユニークで不変な値を生成するために使用されます。これにより、オブジェクトのプロパティキーとして利用する際に、既存のプロパティ名と衝突する心配なく安全に新しいプロパティを追加できるなどの利点があります。Symbol.prototype.valueOf()は、このように重要な役割を持つSymbolの値を、そのオブジェクトから正確に取得するための標準的なメカニズムを提供しています。
構文(syntax)
1const mySymbol = Symbol('unique'); 2const primitiveValue = mySymbol.valueOf();
引数(parameters)
引数なし
引数はありません
戻り値(return)
Symbol
Symbol.prototype.valueOf() は、Symbol オブジェクト自身の値を返します。