如何在JavaScript中列出内置函数的属性?

如何在JavaScript中列出内置函数的属性?,javascript,built-in,Javascript,Built In,当我定义一个对象时,我可以使用点字符访问它的所有属性,这同样适用于内置函数,如字符串、数组、数学等。 但我不能使用for(#in#等)循环遍历它们。它说字符串是本机代码,但我仍然可以访问它的所有成员,尽管我不能遍历它们。 我知道窗口是可移植的,但它们的“子功能”似乎不是。 这是为什么?是否有机会调用属性而不显式键入它们的名称?我是否可以以某种方式列出其所有成员? 我知道它看起来没有用处,也没有人会在生产中需要它。我问它是因为我做不到,我希望有人能给我一些帮助。你可以只获得自己(!!!)财产的所有

当我定义一个对象时,我可以使用点字符访问它的所有属性,这同样适用于内置函数,如字符串、数组、数学等。 但我不能使用
for(#in#
等)循环遍历它们。它说字符串是本机代码,但我仍然可以访问它的所有成员,尽管我不能遍历它们。 我知道
窗口
是可移植的,但它们的“子功能”似乎不是。 这是为什么?是否有机会调用属性而不显式键入它们的名称?我是否可以以某种方式列出其所有成员?


我知道它看起来没有用处,也没有人会在生产中需要它。我问它是因为我做不到,我希望有人能给我一些帮助。

你可以只获得自己(!!!)财产的所有名称

Object.getOwnPropertyNames(YOUR_OBJECT)

这意味着,此方法不枚举继承的属性。如果您想枚举继承的属性,您可以使用
您的\u对象。\uu proto\uuu
,但它只在Mozilla中起作用

如果您不知道成员函数的名称,如何调用成员函数?这是愚蠢之王。如果您想在只有字符串的情况下调用函数(表示函数名),juste do object[str]();@Bergi如何使用此方法获得原型列表?
for(var prototype=[],p=YOUR_object;p=object.getPrototypeOf(p);prototype.push(p))
应该这样做。除了作为标准之外,获取
\uuuuuu proto\uuuuuuu
的功能没有区别。@Bergi但是当p等于Object时,您必须停止循环,因为
Object.getPrototypeOf(Object)=function(){
你有无限循环不,你有点不对劲。
Object->Function.prototype->Object.prototype->null
。原型链保证没有圆,所以这不能是无限循环。@Bálint Juhász
getPrototypeOf
只返回原型,然后你必须调用
getOwnPropertyNames()
适用于每个原型。