Javascript 在数字方法中指定数字的新值

Javascript 在数字方法中指定数字的新值,javascript,Javascript,我的目标是向Number对象添加方法,该方法将更改Number的值。 像这样 var a = 10; a.add(5); console.log(a); // Return 15 这是可能的,或者唯一的办法是 Number.prototype.add = function(n) { return this.valueOf() + n; } var a = 10; a = a.add(5); 谢谢问题是在JS中,原语值是不可变的 理论上,可以使用number对象并更改其[[NumberData

我的目标是向Number对象添加方法,该方法将更改Number的值。 像这样

var a = 10;
a.add(5);
console.log(a); // Return 15
这是可能的,或者唯一的办法是

Number.prototype.add = function(n) { return this.valueOf() + n; }
var a = 10;
a = a.add(5);

谢谢

问题是在JS中,原语值是不可变的

理论上,可以使用number对象并更改其
[[NumberData]]
内部插槽。但是,ECMAScript没有提供实现这一点的方法

取而代之的是,返回一个对象,当它被强制转换成一个带有<代码>值> <代码>的数字时,返回所需的数字,例如

function MyNumber(n) {
  this.number = n;
}
MyNumber.prototype.add = function(n) {
  this.number += n; return this;
};
MyNumber.prototype.valueOf = function() {
  return this.number;
};
var n = new MyNumber(10);
n.add(5);
n + 0; // 15

问题是在JS中,原语值是不可变的

理论上,可以使用number对象并更改其
[[NumberData]]
内部插槽。但是,ECMAScript没有提供实现这一点的方法

取而代之的是,返回一个对象,当它被强制转换成一个带有<代码>值> <代码>的数字时,返回所需的数字,例如

function MyNumber(n) {
  this.number = n;
}
MyNumber.prototype.add = function(n) {
  this.number += n; return this;
};
MyNumber.prototype.valueOf = function() {
  return this.number;
};
var n = new MyNumber(10);
n.add(5);
n + 0; // 15

不确定这是否对你有帮助。但是javascript函数curry可能很有用。比如说

function add(x){
  return function(o){
    return x+o;
   }
}
var a = add(4)(6);
document.getElementById('updateValue').textContent=a

不确定这是否对您有帮助。但是javascript函数curry可能很有用。比如说

function add(x){
  return function(o){
    return x+o;
   }
}
var a = add(4)(6);
document.getElementById('updateValue').textContent=a

JavaScript中的数字是不可变的,因此您不能更改它们,只能重新分配它们。据我所知,这是不可能的。JavaScript中的数字是不可变的,所以您不能更改它们,只能重新分配它们。据我所知,这是不可能的。