2013-03-06 4 views
6

क्या कोई तरीका है कि मैं जेएस ऑब्जेक्ट पर उपलब्ध विधियों को देखने के लिए कंसोल का उपयोग कर सकता हूं?ऑब्जेक्ट पर उपलब्ध विधियों को देखने के लिए कंसोल का उपयोग करें?

मैं कुछ इस तरह की सोच रहा हूँ:

> var myArray = [1,2,3]; 
    undefined 
> myArray 
    [1, 2, 3] 
> myArray.logme = function() { console.log(this); }; 
    function() { console.log(this); } 
> myArray 
    [1, 2, 3] 

दूसरी बार मैं myArray टाइप करें, मैं तथ्य यह है कि logme() विधि अब उपलब्ध है देखना चाहेंगे।

मैं अपरिचित जेएस ऑब्जेक्ट्स को अधिक आसानी से एक्सप्लोर करने के लिए उत्तर जानना चाहता हूं।

+0

यदि आप Chrome की सांत्वना की बात कर रहे हैं तो आप बस 'myArray टाइप कर सकते हैं। '(डॉट के साथ) यह अन्य सभी ऐरे विधियों के साथ 'लॉगमे' प्रकट करेगा – juco

+0

इस q/a को देखें। http://stackoverflow.com/questions/5523747/equivalent-of-pythons-dir-in-javascript – Paolo

+0

@juco - यह अच्छा है, धन्यवाद। मुझे नहीं लगता कि आप केवल गैर-ऐरे-प्रोटोटाइप विधियों को देखने के लिए किसी भी तरह से जानते हैं, हालांकि? – Richard

उत्तर

6

आप

console.dir(myArray); 

उपयोग कर सकते हैं और आप एक विस्तार योग्य/inspectable प्रदर्शन ली मिल जाएगा इस के, कस्टम गुण और प्रोटोटाइप वस्तु सहित:

, (https://stackoverflow.com/a/14537759/1048572 से, यह भी What's the difference between console.dir and console.log? देखें)

1

आप Chrome में रहे हैं और आप निम्नलिखित (काफी क्रूड) की तरह कुछ इस्तेमाल कर सकते हैं के लिए जाँच करता है, तो एक संपत्ति है, तो एक function:

function showMethods(obj) { 
    console.log(Object.keys(obj).filter(function(prop) { 
     return typeof el[prop] == 'function'; 
    })); 
} 
इस प्रकार

तो बस इसे कहते:

showMethods({a: 1, b: 2, c: function() {}}) // ['c'] 
showMethods({a: 1, b: 2}) // [] 
showMethods({a: 1, b: function() {}, c: function() {}}) // ['b', 'c'] 
संबंधित मुद्दे

 संबंधित मुद्दे