gpt4 book ai didi

javascript - 所有内置 javascript 对象

转载 作者:行者123 更新时间:2023-11-28 06:01:47 24 4
gpt4 key购买 nike

我需要获取所有 javascript 对象的列表。换句话说,我需要所有 NameOfXObject,其中存在这样的 x,即:

x+""
will return "[object NameOfXObject]"

例如:

document+""         --> "[object HTMLDocument]"
window+"" --> "[object Window]"
locationStorage+"" --> "[object Storage]"

总结一下:我需要包含以下内容的列表:“HTMLDocument”、“Window”、“Storage”...

我已经尝试过

Object.keys(window)

但它没有返回所有对象

预先感谢,抱歉我的英语

最佳答案

需要用Object.getOwnPropertyNames遍历window的原型(prototype)链获取附加到它的所有属性。

var target = window,
result = [];

do {
result = result.concat(Object.getOwnPropertyNames(target));
} while(target = Object.getPrototypeOf(target))

result = result
//Filter out properties such as "onclick" which are null by default
.filter(function(r){ return window[r] != null; })
//Optional: filter out those whose type is not "object"
.filter(function(r){ return typeof window[r] === 'object'; });
<小时/>

对我来说(这个页面中的 Chrome v50)过滤结果以仅包含返回的长度为 24 的属性名称

["SpeechSynthesisUtterance", "PresentationAvailability", "BeforeInstallPromptEvent", "CanvasRenderingContext2D", "SVGRadialGradientElement", "SVGLinearGradientElement", "SVGFEGaussianBlurElement", "SVGFEDistantLightElement", "SVGAnimatedTransformList"]

但所有这些都是函数而不是对象,因此对于那些 x+'' 将给出更像 "function SpeechSynthesisUtterance() { [native code] }"所以我不确定它是否包含您想要查找的内容。

<小时/>

要获取包含字符串表示形式的列表,例如 ['[object Math]', ...],请添加

    //Get the string representation of the global object
.map(function(r){ return window[r] + ''; });

对我来说,其中一个的长度为 24:'[object SpeechSynthesis]'

关于javascript - 所有内置 javascript 对象,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37215025/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com