在 node.js 中枚举 Object.keys() 存在我不理解的问题。使用以下代码:
Object.prototype.tuple = function() {
var names = Object.keys(this);
console.log("Dump of names:");
console.log(names);
console.log("FOR loop using indexes:");
for (var k = 0; k < names.length; k++)
{
console.log(names[k]);
}
console.log("FOR loop using enumeration:");
for (var z in names)
{
console.log(z);
}
return this;
};
var x = {a:0, b:0, c:0}.tuple();
我在控制台上得到以下结果:
Dump of names:
[ 'a', 'b', 'c' ]
FOR loop using indexes:
a
b
c
FOR loop using enumeration:
0
1
2
tuple
有人可以解释第二个循环中额外的“元组”来自哪里吗?虽然在 Object.prototype 中定义为函数,但它既不是x
对象自己的属性,也不包含在names
数组中。
我正在使用 node.js 版本 0.8.20。