Javascript 在全局上下文中访问API类名

Javascript 在全局上下文中访问API类名,javascript,Javascript,我正在编写一些ES/JS工具。在DevTools中,我可以看到很多类,例如ArrayBuffer。然而,当我试图从窗口全局上下文中提取这样的名称时,我看不到它们。这个片段在Chrome、FireFox和Opera中给出了类似的结果 如果我取消注释//console.log(n)行,我可以看到属性的名称,但没有类 我如何访问这些类(API)名称?这是对象名称的问题 (以及Object.key/value/entries)不考虑不可枚举的属性: window.hasOwnProperty('Ar

我正在编写一些ES/JS工具。在DevTools中,我可以看到很多类,例如ArrayBuffer。然而,当我试图从
窗口
全局上下文中提取这样的名称时,我看不到它们。这个片段在Chrome、FireFox和Opera中给出了类似的结果

如果我取消注释
//console.log(n)行,我可以看到属性的名称,但没有类

我如何访问这些类(API)名称?

这是对象名称的问题

(以及Object.key/value/entries)不考虑不可枚举的属性:

window.hasOwnProperty('ArrayBuffer');//真的
window.propertyEnumerable('ArrayBuffer');//假的
//因此,将不会显示在for-in循环中
用于获取所有属性(包括不可枚举的属性,但使用符号的属性除外)。然后循环遍历它们以查找类名:

Object.getOwnPropertyNames(window).forEach((n) => {
    if (n === 'ArrayBuffer') {
        console.log('FOUND: ArrayBuffer');
    }
})

我想看到窗口的所有属性,例如,动画、音频。ArrayBuffer只是一个例子。顺便说一句:window.propertyEnumerable('window');//是。@CyberFonic查看最后一个示例
props.forEach(pr=>console.log(pr))
(不适用于堆栈代码段,因为堆栈代码段控制台中有大量不适合的属性)@CyberFonic关于
“window”//true
。。。由于它的可枚举性将使用for…in:
for(p in window){if(p==“window”)console.log(p);}/“window”
——因此它是可枚举的:
window.propertyEnumerable('window');/正确
。另外,如果您感兴趣,请注意:对于案例
window.window.window.window
等。。。返回窗口-参考:从找到的214个属性转到958个。通过打印找到的所有属性进行检查,它与DevTools显示的内容匹配。
Object.getOwnPropertyNames(window).forEach((n) => {
    if (n === 'ArrayBuffer') {
        console.log('FOUND: ArrayBuffer');
    }
})