关于JavaScript中的object.method的问题

4 javascript oop methods

这是对此问题的后续问题.

看看这两个例子:

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?)

Mat*_*ley 7

从技术上讲,没有.您可以将它视为主要值的方法,因为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)


Ste*_*wig 4

在 JavaScript 中,一切都是对象,甚至是函数和整数。考虑数字和字符串的方法是完全可以的。例如:

>>> (3.123).toString()
"3.123"
Run Code Online (Sandbox Code Playgroud)