我无法理解console.log的最后输出。
打印:
constructor - ƒ Array() { [native code] }
speak - undefined
undefined
1)为什么说话 - 未定义? 2)为什么有第三个输出线 - 只是 - 未定义?从哪里来的?
class Bar {
speak() {
let text = 'test';
alert(text);
return text;
}
}
var test = new Bar;
z = Object.getOwnPropertyNames(Object.getPrototypeOf(test));
console.log(typeof z, " - ", z);
console.log(z.forEach(function(e) { console.log(e, " - ", z[e]); }));
请帮忙。谢谢!
答案 0 :(得分:1)
您正在检查z[e]
而不是test[e]
。 z
是一个属性名称数组,并且数组没有speak
属性,这与Bar
对象不同,后者具有speak
属性。
这解释了speak - undefined
行。最终的独立undefined
是console.log
本身的返回值:Chrome/Firefox console.log always appends a line saying undefined