【发布时间】:2013-03-01 16:22:54
【问题描述】:
我想获取某个类的所有静态成员的列表。例如:我想获取Object 的所有静态成员(如Object.create 如果可用等等)。我该怎么做?
例子:
var ClassA = function(){}
ClassA.prototype.getName = function(){return "ClassA";} //public method
ClassA.alertName = function(){ alert("ClassA");} //static method
ClassA.doSomething = function(){return "Do something";} //another static method
所以,如果我有更多的静态成员,我想至少得到他们的名字。在这个例子中,我想得到alertName 和doSomething。对于公共成员,您可以执行以下操作:
for (i in ClassA.prototype) {
alert(i);
}
静态成员怎么样?
【问题讨论】:
-
对此感到抱歉。您可以通过以下方式获取公共成员:for(var i in obj){alert(i + " : " + obj[i]);} 但与类不同。我会检查您的建议,但我发现浏览器兼容性有问题(例如仅支持 ie9)
-
所以试着解释一下你所说的“静态成员”是什么意思。你是什么意思“但它与类不同”?
Object.keys有一个 polyfill,您可以插入它以包含对旧浏览器的兼容性(向下滚动到“兼容性”部分)。Object.getOwnPropertyNames有点不同,所以我不确定它是否是您正在寻找的东西。 -
为了确定,您正在尝试获取某个类的所有静态成员的列表?
-
@AleksanderFras:欢迎来到 Stack Overflow!请记下对您的帖子进行的格式改进;关于 Stack Overflow 格式化选项的文档可以在 stackoverflow.com/editing-help 找到
标签: javascript oop static