1

问题是关于内置Number 对象(一个原始包装器)。

var n = new Number(2);
console.log(n); // Number {}
console.log(typeof n); // "object"

n++;
console.log(n); // 3
console.log(typeof n); // "number"

我可以看到 JS 在这里进行了隐式类型转换。准确地说,Number将对象向下转换为number原始对象。有没有办法在没有这种向下转换的情况下修改 Number 对象?

4

1 回答 1

1

不,Number实例是不可变的。你必须这样做:

n = new Number(++n);

得到一个比前一个实例大一个的新实例。

于 2013-07-10T14:54:06.110 回答