javascript - 在 Javascript 中,为什么 Date 对象同时具有 valueOf 和 getTime 方法?

标签 javascript date

MDN 说 valueOfgetTime在功能上是等效的。为什么有两个函数做同样的事情?

最佳答案

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/

相关文章:

javascript - 当整个应用程序崩溃时如何通知 FxOS 应用程序

php - 我怎样才能确保我在特定时间在 php 中发生某些事情,并且它发生在每个时区的那个时间?

javascript - 设置 KeystoneJS 日期格式

javascript - 在 JavaScript 中格式化日期

javascript - 工作 gremlin javascript 示例

javascript - 如何再次使用强制 Jquery mouseenter fadein?

javascript - AngularJS单元测试指令的属性值

javascript - 如何仅在用户单击相应链接时呈现部分内容?

javascript - 两种不同的日期格式

java - SimpleDateFormat 正在解析为不同的日期