我想用Number
函数扩展plusPlus2
,该函数会将数字增加2。
问题是我不知道如何将结果分配回扩展功能中的数字。就像是:
Number.prototype.plusPlus2 = function() {
this = this + 2;
}
用法是:
x = 1;
x.plusPlus2(); // expect x to be 3
最佳答案
在JavaScript中,基元(数字,字符串, bool(boolean) 值)是不可变的。
因此,无论何时更改基元,都需要将其分配给另一个变量(甚至将其重新分配给自身)。
话虽如此,您不能做您建议的事情,需要返回一个新值,其中包含您想要的值,假设:
Number.prototype.plusplus2 = function() {
return this + 2;
}
然后重新分配它:
let x = 5;
x = x.plusplus2();
然后,您可能想知道:
x++
如何工作? 答案是
x++
是x = x + 1
的语法糖,实际上,这意味着您不是在更改x
,而是在x
上加1并将其重新分配给自己。