在JavaScript中创建类似于Number的对象

时间:2012-11-12 09:54:15

标签: javascript numbers

如何创建一个新的原语或对象,我可以使用Number?中使用的运算符

我想创建一个像Number这样的新对象,使用不同的名称,另一个属性以及我可以使用运算符的位置,即4 + 5

2 个答案:

答案 0 :(得分:0)

如果您想专门针对数字,可以使用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创建新MyNumber并返回该值。

答案 1 :(得分: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