2013-03-06 9 views
6

Czy istnieje sposób, w jaki mogę użyć konsoli, aby zobaczyć metody dostępne w obiekcie JS?Skorzystaj z konsoli, aby zobaczyć dostępne metody na obiekcie?

mam na myśli coś takiego:

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

Drugi raz wpisać myArray, chciałbym zobaczyć na fakt, że metoda logme() jest już dostępna.

Chcę poznać odpowiedź, aby łatwiej odkrywać nieznane obiekty JS.

+0

Jeśli odnosząc się do konsoli Chrome, to może po prostu wpisać 'myArray. '(z kropką) to ujawni' logme' wraz ze wszystkimi innymi metodami Array – juco

+0

Zobacz ten q/a. http://stackoverflow.com/questions/5523747/equivalent-of-pythons-dir-in-javascript – Paolo

+0

@juco - fajnie, dziękuję. Nie sądzę jednak, żebyś znał jakiś sposób na poznanie metod prototypowych, które nie mają charakteru Array? – Richard

Odpowiedz

1

Jeśli jesteś w Chrome i można użyć coś jak następuje (dość surowy) sprawdzić, czy nieruchomość jest function:

function showMethods(obj) { 
    console.log(Object.keys(obj).filter(function(prop) { 
     return typeof el[prop] == 'function'; 
    })); 
} 

Następnie wystarczy nazwać następująco:

showMethods({a: 1, b: 2, c: function() {}}) // ['c'] 
showMethods({a: 1, b: 2}) // [] 
showMethods({a: 1, b: function() {}, c: function() {}}) // ['b', 'c'] 
Powiązane problemy