次のコードと同様に、JavaScriptオブジェクトからのリフレクションは非常に簡単です。JavaScriptのプロパティとメソッドをオブジェクトではなく「クラス」や関数から反映する方法はありますか?
var getAllMembers = function (obj) {
var members = {};
members.properties = [];
members.methods = [];
for (var prop in obj) {
if (typeof obj[prop] != 'function')
members.properties.push(prop);
else members.methods.push(prop);
}
return members;
}
function demo_class(na, nb) {
this.a = na;
this.b = nb;
this.funca = function() {
console.log(this.a);
}
this.funcb = function() {
console.log(this.b);
}
}
var x = new demo_class(1234, 4321);
var members = getAllMembers(x);
console.log(members.properties); // [ 'a', 'b' ]
console.log(members.methods); // [ 'funca', 'funcb' ]
私の質問は:クラスまたは関数から、代わりのオブジェクトからプロパティとメソッドを取得する方法はありますか?たとえば、次のようになります。
var members = getAllMembers(demo_class); // Only can get '[] []'