当前位置:  开发笔记 > 编程语言 > 正文

在Number方法中指定Number的新值

如何解决《在Number方法中指定Number的新值》经验,为你挑选了1个好方法。

我的目标是为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);

谢谢



1> Oriol..:

问题是在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

推荐阅读
echo7111436
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有