最佳答案
Date.prototype.getTime
方法返回自纪元 (1970-01-01T00:00:00Z) 以来的毫秒数;它是 Date 类型所特有的,也是一个重要的方法。
Object.prototype.valueOf
method用于获取任何对象的“原始值”,并在需要将对象转换为原始值时由语言在内部使用。对于 Date 类,使用“时间”属性(getTime()
返回的值)作为其原始形式很方便,因为它是日期的常见表示形式。此外,它允许您在日期对象上使用算术运算符,因此您可以使用比较运算符( <
、 <=
、 >
等)简单地比较它们。
var d = new Date();
d.getTime(); // => 1331759119227
d.valueOf(); // => 1331759119227
+d; // => 1331759119227 (implicitly calls "valueOf")
var d2 = new Date();
(d < d2); // => true (d came before d2)
请注意,您可以为自己的类型实现“valueOf”方法来做有趣的事情:
function Person(name, age) {this.name=name; this.age=age;}
Person.prototype.valueOf = function() {return this.age; }
var youngster = new Person('Jimmy', 12);
var oldtimer = new Person('Hank', 73);
(youngster < oldtimer); // => true
youngster + oldtimer; // => 85
关于javascript - 在 Javascript 中,为什么 Date 对象同时具有 valueOf 和 getTime 方法?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9710136/