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