Указатель «this» в Javascript во вложенной функции

У меня есть вопрос о том, как обрабатывается указатель "this" в сценарии с вложенной функцией.

Скажем, я вставляю следующий пример кода на веб-страницу. Я получаю сообщение об ошибке при вызове вложенной функции "doSomeEffects()". Я проверил в Firebug, и он указывает, что когда я нахожусь в этой вложенной функции, указатель «this» на самом деле указывает на глобальный объект «window», чего я не ожидал. Я не должен понимать что-то правильно, потому что я думал, что, поскольку я объявил вложенную функцию внутри функции объекта, она должна иметь «локальную» область действия по отношению к функции (т.е. указатель «этот» будет ссылаться на сам объект, например как это в моем первом утверждении «если»).

Любые указатели (без каламбура) будут оценены.

var std_obj = {
  options : { rows: 0, cols: 0 },
  activeEffect : "none",
  displayMe : function() {

    // the 'this' pointer is referring to the std_obj
    if (this.activeEffect=="fade") { }

    var doSomeEffects = function() {

      // the 'this' pointer is referring to the window obj, why?
      if (this.activeEffect=="fade") { }

    }

    doSomeEffects();   
  }
};

std_obj.displayMe();
82
задан Evan Carslake 10 August 2015 в 16:06
поделиться