这是对此问题的后续问题.
看看这两个例子:
var number1 = new Number(3.123);
number1 = number1.toFixed(2);
alert(number1);
var number2 = 3.123;
number2 = number2.toFixed(2);
alert(number2);
Run Code Online (Sandbox Code Playgroud)
我意识到它们最终都具有相同的值,但是参考原始值的方法是否正确?(换句话说,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
Run Code Online (Sandbox Code Playgroud)
在 JavaScript 中,一切都是对象,甚至是函数和整数。考虑数字和字符串的方法是完全可以的。例如:
>>> (3.123).toString()
"3.123"
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
1175 次 |
| 最近记录: |