使用原型的Javascript如何为数字设置“this”的值?

时间:2014-09-30 21:33:04

标签: javascript numbers set prototype

所以,如果我们能够超越"你应该吗?"问题...有没有人知道如何在原型中设置整数的值?



Number.prototype.add = function(num){
  var newVal = this.valueOf() + num;
  this.valueOf(newVal);
  return newVal;
}

var rad = 4001.23;
document.write(rad.add(10) + '<br/>' + rad);
&#13;
&#13;
&#13;

你会注意到rad.add(10)返回变量&#34; rad&#34;中包含的数字。加上10,但我真的想在原型添加函数中改变rad的值(我知道这个.valueOf(newVal)没有完成)。

可以这样做吗?如果是这样,怎么样?

3 个答案:

答案 0 :(得分:1)

&#13;
&#13;
Number.prototype.add = function(num){
  var newVal = this.valueOf() + num;
  this.valueOf(newVal);
  return newVal;
}

var rad = new Number(4001.23);
document.write(rad.add(10) + '<br/>' + rad);
&#13;
&#13;
&#13;

答案 1 :(得分:0)

基本上你不能,数字,布尔和字符串是不可变的

答案 2 :(得分:0)

JavaScript既有数字原语,也有Number个对象。数字原语是不可变的(就像JavaScript中的所有原语一样)。 Number对象的数值也是不可变的。因此,您的add方法只能返回更新后的值。当然,您可以使用可变值创建自己的类似数字的对象。

Details about number immutability and your own number object in this other answer (在回答问题时没有意识到这个问题是重复的)