日期的原型方法不可枚举。如何获取它们的迭代列表?

日期的原型方法不可枚举。如何获取它们的迭代列表?

问题描述:

我想遍历javascript日期对象的方法。第一次尝试没有成功:日期的原型方法不可枚举。如何获取它们的迭代列表?

var date = new Date(); 
for (var key in date) { 
    console.log(key); 
} 

我已经尝试了一些相关的东西 - Object.keys,例如。到目前为止,我还没有找到办法做到这一点。

MDN

的Object.getOwnPropertyNames()方法返回所有 特性的阵列(包括不同的是使用符号的是 性能的非枚举的属性)直接发现在给定的对象。

所以Object.getOwnPropertyNames会产生我一直在寻找的时候原型对象上直接呼吁名单:

Object.getOwnPropertyNames(Date.prototype) 
+0

最重要的区别是,你在'Date.prototype'操作,而不是一个'日期对象。 – Barmar

+0

不,重要的区别是方法不是可枚举的,并且Object.getOwnPropertyNames包含非枚举属性,而'for ... in'不包含。对于(Date.prototype中的var键)console.log(key)'也是空的。 – undefined