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