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

4
如何创建一个新的原始值或对象,以便可以使用Number中使用的运算符?
我想创建一个类似于Number的新对象,名称不同,具有其他属性,并且可以使用运算符,例如4+5。

你想实现什么目标?为什么不能直接使用一个数字? - James Allardice
因为我想根据其大小拥有不同的名称,例如对于8、16或32位整数;无符号整数也是如此。 - user1243746
你不能在JS中重载运算符。 - Yoshi
那么,我的更好选择是将对象继承到Number。 - user1243746
1
不知道这是否对你有帮助。一旦你使用这些运算符,你的对象要么会被转换(参见David的回答),要么在数学运算中根本无法工作。即使它们可以被转换,它们也永远不会被转换回它们之前的状态(例如,你的派生类型)。 - Yoshi
2个回答

0

如果你想要一个特定的数字,可以使用 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并返回它,除非你想要可变的数字。


0

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接