JavaScriptのvalueOf()メソッドの使い道
valueOf()メソッドは、オブジェクトのプリミティブ値を返すメソッドです。JavaScriptエンジンは算術演算や比較演算などの際に、オブジェクトをプリミティブ値に変換する必要がある場合に、通常、このメソッドを自動的に呼び出します。
valueOf()メソッドの具体的な動作はオブジェクトの種類によって異なります。配列、日付、真偽値などのほとんどの内蔵オブジェクトでは、valueOf()メソッドはオブジェクト自身を返します。カスタムオブジェクトでは、valueOf()メソッドをオーバーライドすることで、原始値をどのように返すかを定義できます。
以下はvalueOf()メソッドの使い方を示す例です。
- 配列:配列のvalueOf()メソッドは、配列自体を返します。
var arr = [1, 2, 3];
console.log(arr.valueOf()); // [1, 2, 3]
- 日付: DateオブジェクトのvalueOf()メソッドは日付を表現するミリ秒数を返します。
var date = new Date();
console.log(date.valueOf()); // 1622115936467
- ユーザー定義オブジェクト:valueOf() 関数をオーバーライドすることで、ユーザー定義オブジェクトの原始値を指定できます。
function MyObject(value) {
this.value = value;
}
MyObject.prototype.valueOf = function() {
return this.value;
};
var obj = new MyObject(42);
console.log(obj.valueOf()); // 42
valueOf()メソッドは、オブジェクトをプリミティブ値に変換し、arithmetic演算や比較演算で使用できるようにする方法を提供します。