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ə:

javascriptfunction 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:

javascriptfunction func() {
  console.log(this); // pəncərə window-a istinad
}

func();

Əgər rejim ciddidirsə, onda this-də undefined saxlanılacaq:

javascript"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:

javascript"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.