Number で使用される演算子を使用できる新しいプリミティブまたはオブジェクトを作成するにはどうすればよいですか?
Number のような新しいオブジェクトを、別の名前、別のプロパティ、および演算子 (つまり 4+5) を使用できる場所で作成したい
Number で使用される演算子を使用できる新しいプリミティブまたはオブジェクトを作成するにはどうすればよいですか?
Number のような新しいオブジェクトを、別の名前、別のプロパティ、および演算子 (つまり 4+5) を使用できる場所で作成したい
オブジェクトのvalueOf
プロトタイプをオーバーライドして、独自のプリミティブを作成できます。
var N = function(n) {
this._value = n;
}
N.prototype.valueOf = function() {
return this._value+1;
};
console.log( new N(4) + 4 ); // 9
ここで例と詳細を参照してください:https ://developer.mozilla.org/en-US/docs/JavaScript/Reference/Global_Objects/Object/valueOf
特に数値が必要な場合は、Numberオブジェクトを使用できます。他の目的でそれが必要で、例としてNumberのみを使用している場合、JavaScriptは演算子のオーバーロードをサポートしていないため、それを行うことはできません。
最善の方法はthis
、plus
関数に戻って連鎖することです。これにより、次のことが可能になります。
var n1 = new MyNumber(1);
var n2 = new MyNumber(2);
var n3 = new MyNumber(3);
var sum = n1.plus(n2).plus(n3);
// sum: 6
また、可変の数値が必要な場合を除いて、それがMyNumber
newを作成し、それを返すことを確認する必要があります。MyNumber