Существует ли способ распечатать все методы объекта? [дубликат]

66
задан double-beep 26 August 2019 в 16:04
поделиться

5 ответов

Уверенный:

function getMethods(obj) {
  var result = [];
  for (var id in obj) {
    try {
      if (typeof(obj[id]) == "function") {
        result.push(id + ": " + obj[id].toString());
      }
    } catch (err) {
      result.push(id + ": inaccessible");
    }
  }
  return result;
}

Используя его:

alert(getMethods(document).join("\n"));
86
ответ дан troelskn 24 November 2019 в 15:02
поделиться

Вот сообщение на отражение JS . Это должно сделать то, что Вы ищете.

6
ответ дан Oli 4 July 2019 в 18:47
поделиться

Возьмите глупца в этом code:-

function writeLn(s)
{
    //your code to write a line to stdout
    WScript.Echo(s)
}

function Base() {}
Base.prototype.methodA = function() {}
Base.prototype.attribA = "hello"

var derived = new Base()
derived.methodB = function() {}
derived.attribB = "world";

function getMethods(obj)
{
    var retVal = {}

    for (var candidate in obj)
    {
        if (typeof(obj[candidate]) == "function")
            retVal[candidate] = {func: obj[candidate], inherited: !obj.hasOwnProperty(candidate)}
    }
    return retVal
}

var result = getMethods(derived)
for (var name in result)
{
    writeLn(name + " is " + (result[name].inherited ? "" : "not") + " inherited")
}

, функция getMethod возвращает набор методов наряду с тем, является ли метод тем, который был наследован от прототипа.

Примечание, что, если Вы намереваетесь использовать это на объектах, которые предоставляются от контекста, такого как БРАУЗЕР/ОБЪЕКТ DOM тогда, это не будет работать IE.

3
ответ дан AnthonyWJones 24 November 2019 в 15:02
поделиться

От здесь :

Пример 1: Этот пример выписывает все свойства объекта "навигатора" плюс их значения:

for (var myprop in navigator){
 document.write(myprop+": "+navigator[myprop]+"<br>")
}

Просто замена 'навигатор' с любым объектом Вы интересуетесь, и необходимо быть хорошими для движения.

, Как упомянуто Anthony в разделе комментариев - Это возвращает все атрибуты не только методы как вопрос, для которого задают.

ой! Это будет учить меня пытаться ответить на вопрос на языке, который я не знаю. Однако, я думаю, что код полезен - просто не, что требовалось.

1
ответ дан WalkingRandomly 24 November 2019 в 15:02
поделиться

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

0
ответ дан Neall 24 November 2019 в 15:02
поделиться
Другие вопросы по тегам:

Похожие вопросы: