JavaScript'te Bağlanmamış Fonksiyonun Bağlamı
Bir fonksiyona this yazdığımızda
ama onu herhangi bir elemana bağlamadığımızda
ne olacağını bir inceleyelim:
function func() {
console.log(this);
}
func();
Bu durumda sonuç,
katı modda
olup olmadığımıza bağlıdır. Eğer mod katı değilse,
this içinde window'a bir referans
tutulacaktır:
function func() {
console.log(this); // window'a referans
}
func();
Eğer mod katı ise, this içinde
undefined tutulacaktır:
"use strict";
function func() {
console.log(this); // undefined
}
func();
Yukarıdakilerden, katı modda this'in
her zaman undefined olacağı sonucu
çıkarılabilir. Öyle değil! Eğer this'i
fonksiyon dışında basitçe yazdırırsak,
içinde moddan bağımsız olarak window'a
bir referans olacaktır:
"use strict";
console.log(this); // this'te window'a referans
Sonuçlar
Herhangi bir fonksiyona this yazılabilir,
bu JavaScript'te herhangi bir hataya yol açmaz.
Ancak bu this'in içinde tam olarak neyin
olacağı, fonksiyonun çağrıldığı ana kadar
tanımlanmamıştır. Üstelik fonksiyonun farklı
çağrılarında this farklı değerler
alabilir. Her şey, fonksiyonun hangi bağlamda
çağrıldığına bağlıdır.