如何创建可以使用 Number 中使用的运算符的新原语或对象?
我想创建一个像 Number 这样的新对象,具有不同的名称、其他属性以及可以在哪里使用运算符,即 4+5
如何创建可以使用 Number 中使用的运算符的新原语或对象?
我想创建一个像 Number 这样的新对象,具有不同的名称、其他属性以及可以在哪里使用运算符,即 4+5
如果您希望它专门用于数字,您可以使用 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
并返回它,除非您想要可变数字。
您可以覆盖对象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