4

あるクラスのすべての静的メンバーのリストを取得したいと思います。例: のすべての静的メンバーを取得したいと思いますObject( Object.createif avalible など)。どうやってやるの?

例:

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ます。public メンバーを使用すると、次のようなことができます。

for (i in ClassA.prototype) {
    alert(i);
}

静的メンバーはどうですか?

4

2 に答える 2

5

それらをどのように検査しようとしていますか?

実際のクラスを通過するために同じイテレータを使用できないのはなぜですか?

var key = "";
for (key in MyClass) { console.log(key); }

これはあなたの日常言語ではありません。
関数/コンストラクター関数を含め、JS の実質的にすべてがオブジェクトです。

そのため、ここで「public static」のように見えるものは、実際にはオブジェクトの単なるメソッドであり、他のオブジェクトと同様に反復処理できます。

また、プロトタイピングは public static です。
インスタンスにプロパティのプロトタイプを作成すると、すべてのインスタンスがまったく同じプロパティへの参照を持ち、そのプロパティを変更すると、他のすべての人の参照が変更されます。

于 2013-03-13T16:59:29.890 に答える