在Number方法中指定Number的新值
Assign new value of Number in Number method
我的目标是将方法添加到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中,基元值是不可变的。
从理论上讲,可以使用数字对象并更改其[[NumberData]]
内部插槽。然而,ECMAScript没有提供这样做的方法。
相反,考虑返回一个对象,当被强制为具有valueOf
的数字时,该对象会返回所需的数字,例如
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函数currying可能很有用。例如
function add(x){
return function(o){
return x+o;
}
}
var a = add(4)(6);
document.getElementById('updateValue').textContent=a
工作
相关文章:
- $$hashKey在Angular中push()新对象时未生成新值
- text()将保留旧值,但在DOM上显示新值
- Knockout Force在设置新值时通知订阅者可观察到的值
- Javascript / JQuery循环访问已发布的ajax数据字符串以为其分配新值
- 为nouislider设置新值已达到最大数量
- object.create 不使用我的新值
- 在更改选择元素后,在 Javascript 上使用旧值和新值
- 表单不接受新值
- 使用jQuery为属性设置新值
- 如何从javascript散点图中的另一个变量为x和y添加新值
- 根据另一个字段选择获取新值后更新下拉列表内容
- 可以't为我的自动完成框指定新值
- 使用新值更新时出现数组问题
- ajax重新渲染时获得新值
- onClick()从传递给Django模板的函数中获取一个新值
- Grunt为任务设置选项,并使用新值运行该任务
- 比较两个数组,并通过使用 javascript 保留现有对象来更新新值
- 如何使用 Angular.js/javascript 将 JSON 数组值替换为新值
- API 从 angularjs 中保存新值和旧值
- 在Number方法中指定Number的新值