Как получить методы объекта? - PullRequest
83 голосов
/ 30 апреля 2011

Есть ли метод или свойство, чтобы получить все методы от объекта?Например:

function foo() {}
foo.prototype.a = function() {}
foo.prototype.b = function() {}

foo.get_methods(); // returns ['a', 'b'];

ОБНОВЛЕНИЕ: Есть ли такой метод в Jquery?

Спасибо.

Ответы [ 12 ]

0 голосов
/ 02 августа 2017

Получите имена методов:

var getMethodNames = function (obj) {
    return (Object.getOwnPropertyNames(obj).filter(function (key) {
        return obj[key] && (typeof obj[key] === "function");
    }));
};

Или получите методы:

var getMethods     = function (obj) {
    return (Object.getOwnPropertyNames(obj).filter(function (key) {
        return obj[key] && (typeof obj[key] === "function");
    })).map(function (key) {
        return obj[key];
    });
};
0 голосов
/ 12 декабря 2015

В Chrome есть keys(foo.prototype). Возвращает ["a", "b"].

См .: https://developer.chrome.com/devtools/docs/commandline-api#keysobject enter image description here

Позднее редактирование: если вам нужно быстро скопировать его (для больших объектов), выполните copy(keys(foo.prototype)), и оно будет у вас в буфере обмена.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...