Как перечислить функции / методы объекта javascript? (Это вообще возможно?) - PullRequest
10 голосов
/ 04 декабря 2010

Этот вопрос специально сформулирован как этот вопрос .

Я даже не знаю, возможно ли это, я помню смутно слышал что-то о некоторых свойствах, не перечисляемых в JS.*

В любом случае, короче говоря, я разрабатываю что-то на платформе js, для которой у меня нет документации и нет простого доступа к коду, и это очень помогло бы узнать, что я могу делать со своими объектами.

Ответы [ 4 ]

16 голосов
/ 04 сентября 2013

Если вы включите Underscore.js в свой проект, вы можете использовать _.functions(yourObject).

11 голосов
/ 04 декабря 2010

Я думаю, это то, что вы ищете:

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 голосов
/ 04 декабря 2010

Вы должны иметь возможность перечислять методы, которые устанавливаются непосредственно для объекта, например ::100100

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

Но большинство методов будут принадлежать прототипу объекта, например:

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

Таким образом, в этом случае вы можете обнаружить унаследованные методы, перечислив свойства Obj.prototype.

1 голос
/ 04 декабря 2010

Вы можете использовать следующее:

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.
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...