Отслеживание, когда / где переменная установлена ​​в Javascript с использованием FireBug - PullRequest
3 голосов
/ 21 июля 2010

В настоящее время я использую FireBug, чтобы увидеть, как Hypem доставляет ему контент, позволяющий его флеш-плееру работать (в частности, функциональность кнопки воспроизведения). Я обнаружил, что переменная trackList заполняется данными, но я не знаю, где они установлены.

Как я могу отследить, когда и где эта коллекция была изменена? Я могу добавить к нему часы, но не знаю, как их ловить, когда они установлены.

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

Ответы [ 2 ]

2 голосов
/ 18 августа 2014

Вот как вы используете defineProperty, чтобы сделать это. В моем примере я регистрируюсь каждый раз, когда назначается window.$ вместе со стеком вызовов. Конечно, вместо регистрации вы можете вызвать debugger; или сделать что-то еще.

Object.defineProperty(window, "$",
{
  set: function(val) {
    console.log("$ was set to '",val,"' at ",Error().stack);
    this.$internal=val;
  },
  get: function() { return this.$internal; }
});
1 голос
/ 21 июля 2010

К сожалению, это невозможно напрямую.

Вместо этого вы можете искать в Javascript и видеть, где установлена ​​переменная, а затем ставить нормальную точку останова на каждой найденной строке.

...