Как вы можете увидеть, какие функции и переменные в настоящее время определены в JavaScript? - PullRequest
0 голосов
/ 26 марта 2010

В PHP есть функция, где вы можете получить список пользовательских функций, которые определены в данный момент. Есть ли что-то похожее в JS?

Я пытаюсь увидеть список функций в Firefox 3 с включенным Firebug.

= / пока ни один из ответов не работает из коробки

Ответы [ 3 ]

3 голосов
/ 26 марта 2010
var funcs = []; 

for(var prop in window) {
  if(window.hasOwnProperty(prop) && typeof window[prop] === 'function') {
    if(window[prop].toString().indexOf("[native code]") === -1) {
      funcs.push(window[prop]);
    }
  }
}  
1 голос
/ 27 марта 2010

Может быть слишком простым, но если у вас включен Firebug, зарегистрируйте window на консоли. При нажатии на него будут перечислены все члены window. Это поможет вам, если вам нужен быстрый визуальный список, но если вы действуете на всех участниках window, вам нужно будет использовать один из других методов, опубликованных в комментариях.

Что-то вроде for(var i in window) выведет вас на правильный путь.

1 голос
/ 27 марта 2010

Нет кросс-браузерного метода. В Internet Explorer определенные переменные и функции становятся членами объекта window, но не перечисляются. Вы можете проверить их существование, используя funcName in window, но не можете перечислить их, используя оператор for...in.

Переменные, которые определены как свойства объекта окна , являются перечисляемыми:

function someFunc () {} // is not enumerable
window.someOtherFunc = function () {} // is enumerable

РЕДАКТИРОВАТЬ Реализация JScript (удивление, удивление) на самом деле неверна, как описано в этом сообщении в блоге Эрика Липперта .

Но я не думаю, что вы хотите поставить перед всеми вашими переменными window., не так ли? Для метода, который будет работать в некоторых браузерах, см. ответ Джоша Стодолы .

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