У мене виникає питання, як трактується "цей" покажчик у сценарії вкладених функцій.
Скажіть, я вставляю наступний зразок коду на веб-сторінку. Я отримую помилку, коли я називаю вкладену функцію "doSomeEffects ()". Я перевірив у Firebug, і це вказує, що коли я перебуваю в цій вкладеній функції, покажчик "цей" насправді вказує на глобальний "віконний" об'єкт - чого я не очікував. Я не повинен щось правильно розуміти, тому що я думав, коли я оголосив вкладену функцію у межах функції об'єкта, вона повинна мати "локальну" область по відношенню до функції (тобто вказівник "цей" посилався б на сам об'єкт, як як це в моєму першому висловленні "якщо").
Будь-які вказівки (каламбур не призначений) будуть вдячні.
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();
thisпосилається на об'єкт, для якого викликається функція.
var self = this;а потім звернутися до selfвнутрішньої функції через закриття.
doSomeEffectsне асоціюється з яким-небудь об'єктом, зокрема, тому thisвважається вікном, матір'ю всіх елементів.