我想用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并将其重新分配给自己。

10-05 20:30