这是对此问题的后续问题.
看看这两个例子:
var number1 = new Number(3.123); number1 = number1.toFixed(2); alert(number1); var number2 = 3.123; number2 = number2.toFixed(2); alert(number2);
我意识到它们最终都具有相同的值,但是参考原始值的方法是否正确?(换句话说,3.123.method而不是object.method?)
从技术上讲,没有.您可以将它视为主要值的方法,因为number2将被转换为Number
对象,然后toFixed
在该对象上被调用.
在字符串上调用方法时会发生同样的事情.
为了说明发生了什么,您可以运行以下代码:
Object.prototype.type = function() { return typeof this; } var string = "a string"; var number = 42; alert(typeof string); // string alert(string.type()); // object alert(typeof number); // number alert(number.type()); // object