4

Number で使用される演算子を使用できる新しいプリミティブまたはオブジェクトを作成するにはどうすればよいですか?

Number のような新しいオブジェクトを、別の名前、別のプロパティ、および演算子 (つまり 4+5) を使用できる場所で作成したい

4

2 に答える 2

0

オブジェクトの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

于 2012-11-12T10:07:46.313 に答える
0

特に数値が必要な場合は、Numberオブジェクトを使用できます。他の目的でそれが必要で、例としてNumberのみを使用している場合、JavaScriptは演算子のオーバーロードをサポートしていないため、それを行うことはできません。

最善の方法はthisplus関数に戻って連鎖することです。これにより、次のことが可能になります。

var n1 = new MyNumber(1);
var n2 = new MyNumber(2);
var n3 = new MyNumber(3);
var sum = n1.plus(n2).plus(n3);

// sum: 6

また、可変の数値が必要な場合を除いて、それがMyNumbernewを作成し、それを返すことを確認する必要があります。MyNumber

于 2012-11-12T10:00:22.783 に答える