JavaScript-тегінің байланыстырылмаған функциясының контексті
Функцияда this көрсетілген, бірақ ол ешбір элементке
байланыстырылмаған кезде не болатынын қарастырайық:
function func() {
console.log(this);
}
func();
Бұл жағдайда нәтиже біздің режиміміз
қатаң
емес пе, соған байланысты. Егер режим қатаң болмаса,
онда this-те window-ке сілтеме сақталады:
function func() {
console.log(this); // window-ге сілтеме
}
func();
Ал егер режим қатаң болса, онда this-те
undefined сақталады:
"use strict";
function func() {
console.log(this); // undefined
}
func();
Жоғарыда айтылғандардан this әрқашан
undefined болады деп ойлауға болады.
Бірақ бұл дұрыс емес! Егер this-ті функциянан тыс
жай ғана шығарсақ, онда онда window-ке сілтеме болады,
режимге қарамастан:
"use strict";
console.log(this); // this-те window-ге сілтеме
Қорытынды
Кез келген функцияда this жазуға болады,
бұл JavaScript-те қандай да бір қателерге әкелмейді.
Бірақ дәл осы this-те не сақталатыны функцияны
шақыру сәтіне дейін анықталмаған болады.
Сонымен қатар, функцияны әртүрлі шақырулар кезінде this
әртүрлі мән қабылдауы мүмкін. Бәрі функцияның қай контексте
шақырылғанына байланысты.