JavaScript-də Bağlanmamış Funksiyanın Konteksti
Gəlin bir funksiyada this yazsaq,
ancaq onu heç bir elementə bağlamasaq nə olacağına baxaq, belə:
function func() {
console.log(this);
}
func();
Bu halda nəticə bizim rejimimizin
ciddi
olmasından və ya olmamasından asılıdır. Əgər rejim ciddi deyilsə,
onda this-də window-a istinad saxlanılacaq:
function func() {
console.log(this); // pəncərə window-a istinad
}
func();
Əgər rejim ciddidirsə, onda this-də
undefined saxlanılacaq:
"use strict";
function func() {
console.log(this); // undefined
}
func();
Yuxarıda deyilənlərdən belə güman etmək olar ki,
ciddi rejimdə this həmişə undefined olacaq.
Heç də elə deyil! Əgər sadəcə funksiyadan kənarda
this çıxarsaq, onda onda rejimdən asılı olmayaraq
window-a istinad olacaq:
"use strict";
console.log(this); // this-də window-a istinad
Nəticələr
İstənilən funksiyada this yazmaq olar,
bu JavaScript-in hər hansı səhvlərinə səbəb olmayacaq.
Lakin bu this-də tam olaraq nəyin olacağı
funksiya çağırılana qədər müəyyən edilmir.
Üstəlik, funksiyanın müxtəlif çağırışlarında this
müxtəlif dəyərlər ala bilər. Hamısı funksiyanın hansı
kontekstdə çağırıldığından asılıdır.