日期的原型方法不可枚举。如何获取它们的迭代列表?
问题描述:
我想遍历javascript日期对象的方法。第一次尝试没有成功:日期的原型方法不可枚举。如何获取它们的迭代列表?
var date = new Date();
for (var key in date) {
console.log(key);
}
我已经尝试了一些相关的东西 - Object.keys
,例如。到目前为止,我还没有找到办法做到这一点。
答
从MDN:
的Object.getOwnPropertyNames()方法返回所有 特性的阵列(包括不同的是使用符号的是 性能的非枚举的属性)直接发现在给定的对象。
所以Object.getOwnPropertyNames会产生我一直在寻找的时候原型对象上直接呼吁名单:
Object.getOwnPropertyNames(Date.prototype)
最重要的区别是,你在'Date.prototype'操作,而不是一个'日期对象。 – Barmar
不,重要的区别是方法不是可枚举的,并且Object.getOwnPropertyNames包含非枚举属性,而'for ... in'不包含。对于(Date.prototype中的var键)console.log(key)'也是空的。 – undefined