Отладка замыканий в JavaScript - PullRequest
5 голосов
/ 21 февраля 2012

Когда я пытаюсь отладить код JavaScript, который имеет много замыканий, я использую его для установки точек останова.

Затем я иду к стеку, но в большинстве случаев просто вижу стек вызовов, полныйанонимные функции, которые являются для меня кошмаром.

Каков наилучший способ отладки закрытия в javascript?

Ответы [ 3 ]

5 голосов
/ 21 февраля 2012

Вы можете добавить имя к функции обратного вызова. Таким образом, имя функции будет показано во время отладки.

Как пример в jQuery

$('div').each( function divLoop() {
  ..
});

В ООП Javascript обычно вызывать функцию как имя метода

MyClass.prototype.methodName = function methodName() { ... }
2 голосов
/ 21 февраля 2012

Что ж, в Google Chrome вы можете видеть содержимое переменных в замыканиях:

enter image description here

Local - текущий контекст выполнения
Закрытие - это окружающий контекст выполнения
...
До глобального контекста выполнения

1 голос
/ 21 февраля 2012

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

http://jsfiddle.net/v9Fas/

Таким образом, вы можете отлаживать внутри функции обратного вызова, как обычный вызов функции.

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