javascript - 如何理解 JavaScript 中类实例提供的 forEach 行为?

标签 javascript

我无法真正理解 console.log 最后的输出。

打印:

constructor  -  ƒ Array() { [native code] }
speak  -  undefined
undefined

1) 为什么speak - 未定义? 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]); }));

请帮忙。谢谢!

最佳答案

您正在检查 z[e] 而不是 test[e]z 是属性名称数组,数组没有 speak 属性,与 Bar 对象不同,后者有 speak 属性。

这解释了 speak - undefined 行。最终的独立undefinedconsole.log本身的返回值:Chrome/Firefox console.log always appends a line saying undefined

关于javascript - 如何理解 JavaScript 中类实例提供的 forEach 行为?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46452339/

相关文章:

javascript - Kendo DropDownList 在加载时在 DataTextField 之前显示 DataValueField

javascript - 使用 Javascript 检测太平洋时区

javascript - 将管理某些内容的 View 传递给第二个 View - Backbone

javascript - UIWebView、缩放和 elementFromPoint

javascript - 如何基于键数组创建嵌套的 JSON?

javascript - 使用ajax时获取 undefined index 。

javascript - 在 JavaScript 中返回条件语句

javascript - 编写 Array.every() 函数

javascript - 可排序和可删除的 Jquery 不断替换 WordPress 中的数据

javascript - 正则表达式在 JavaScript 中不起作用 : SCRIPT5018: Unexpected quantifier