for ... in迭代所有拥有和 继承的 可枚举
属性。这不是“奇怪的错误”,实际上这是预期的行为。 __
至于
Object.keys(),除非它被不兼容的实现覆盖,否则实际上它们是对象本身的可枚举键,因此您很可能会弄错。该
e对象
.toJSON()在其原型中有一个方法,当您执行此操作时会隐式调用该方法
console.log(e),因此该方法可能是您在此处看到的输出,并且不太可能反映出与原始对象完全相同的属性键。尝试调用
console.log(e.toJSON()),我想它将与第一个输出相同。
如果只需要对象自身的属性,请使用
Object.getOwnPropertyNames(e)。
如果要在第一个输出中打印键,请使用
Object.keys(e.toJSON())。



