我想获取某个类的所有静态成员的列表。例如:我想获取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);
}
静态成员如何?
您如何检查它们?
为什么您不能只使用相同的迭代器来遍历您的实际类?
var key = "";
for (key in MyClass) { console.log(key); }
这不是您每天使用的语言。实际上,JS中的所有内容都是一个对象,包括函数/构造函数。
因此,在您看来,这里的“公共静态”实际上只是一个对象的方法,可以像其他任何对象一样通过它进行迭代。
也:原型制作是公共静态的。如果将属性原型创建到实例中,则所有实例均具有对该完全相同属性的引用,对该属性的修改将更改其他所有人的引用。