如何创建一个新的原始值或对象,以便可以使用Number中使用的运算符?
我想创建一个类似于Number的新对象,名称不同,具有其他属性,并且可以使用运算符,例如4+5。
我想创建一个类似于Number的新对象,名称不同,具有其他属性,并且可以使用运算符,例如4+5。
如果你想要一个特定的数字,可以使用 Number 对象。如果你想要它用于其他用途,并且只是将 Number 作为示例使用,那么你不能这样做,因为 JavaScript 不支持运算符重载。
最好的方法是通过在 plus
函数中返回 this
来链接在一起,所以你可以这样做:
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
并返回它,除非你想要可变的数字。
您可以覆盖对象的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/zh-CN/docs/Web/JavaScript/Reference/Global_Objects/Object/valueOf