2010-12-04 1 views
8

この質問は意図的にthis questionのように表現されています。javascriptオブジェクトの関数/メソッドをリストする方法は? (それは可能ですか?)

これが可能かどうかわかりませんが、私はJSで列挙できないいくつかのプロパティについて漠然と聞いています。

とにかく短いストーリーを短くする:私はドキュメンテーションがなく、コードに簡単にアクセスできないjsフレームワーク上で何かを開発しています。私のオブジェクトで何ができるかを知るのに大いに役立ちます。

答えて

9

私は、これはあなたが探しているものだと思う:

var obj = { locaMethod: function() { alert("hello"); }, a: "b", c: 2 }; 
for(var p in obj) 
{ 
    if(typeof obj[p] === "function") { 
     // its a function if you get here 
    } 
} 
3

あなたがオブジェクトに直接設定されている方法、例えば列挙することができるはずです。

var obj = { locaMethod: function() { alert("hello"); } }; 

をしかし、ほとんどの方法はそうのように、オブジェクトのプロトタイプに属します:

var Obj = function ObjClass() {}; 
Obj.prototype.inheritedMethod = function() { alert("hello"); }; 
var obj = new Obj(); 

でそうその場合、Obj.prototypeのプロパティを列挙して継承されたメソッドを発見することができます。

+0

これは私が実際に実行している問題です。私はObj.prototypeではなくオブジェクトにあるすべてを取得し、覚えていれば私のコードをここに回答として入れます。私はこれがイントロスペクションだと思います。これには別の言葉がありますか? –

1

次を使用することができます。

var obj = { locaMethod: function() { alert("hello"); }, a: "b", c: 2 }; 


for(var p in obj) 
{ 
    console.log(p + ": " + obj[p]); //if you have installed Firebug. 
} 
15

プロジェクトでUnderscore.jsが含まれている場合、あなたは_.functions(yourObject)を使用することができます。

関連する問題