JavaScript this Anahtarı
- Önceki Sayfa JS Sıkı Mod
- Sonraki Sayfa JS Okçuluk Fonksiyonları
Örnek
var person = { firstName: "Bill", lastName : "Gates", id : 678, fullName : function() { return this.firstName + " " + this.lastName; } };
this nedir?
JavaScript this
Anahtar kelime, ona ait nesneyi belirtir.
Değeri, kullanım konumuna bağlı olarak farklı olabilir:
- Yöntemde,
this
Bu, sahibi nesneyi belirtir. - Tek başına durumunda,
this
küresel nesneyi belirtir. - Fonksiyon içinde,
this
küresel nesneyi belirtir. - Fonksiyon içinde, katı modda,
this
tanımlanmamıştır. - Olayda,
this
Bu, olayı alan elementi belirtir.
Benzer call()
ve apply()
Bu tür yöntemler this'i herhangi bir nesneye referans verebilir.
Yöntemdeki this
Nesne yöntemlerinde,this
Bu yöntemin "sahibi"ni belirtir.
Bu sayfanın en üstündeki örnekte,this
Bu, person nesnesini belirtir.
person nesnesi fullName yönteminin sahibidir.
fullName : function() { return this.firstName + " " + this.lastName; }
Tek başına this
Tek başına kullanıldığında, sahibi küresel nesnedir, bu yüzden this
küresel nesneyi belirtir.
Tarayıcı penceresinde, küresel nesne, [object Window]
:
Örnek
var x = this;
Katı modda, tek başına kullanıldığında, this
küresel nesneyi belirtir [object Window]
:
Örnek
"use strict"; var x = this;
Fonksiyon içinde this(varsayılan)
JavaScript fonksiyonunda, fonksiyonun sahibi varsayılan olarak bağlanır this
。
Bu yüzden, fonksiyon içinde,this
küresel nesneyi belirtir [object Window]
。
Örnek
function myFunction() { return this; }
Fonksiyon içinde this(katı mod)
JavaScript katı modu varsayılan bağlamı izin vermez.
Bu yüzden, fonksiyon içinde kullanılırken, katı modda,this
tanımlanmamıştır (undefined
)。
Örnek
"use strict"; function myFunction() { return this; }
Olay işleyicisindeki this
HTML olay işleyicilerinde,this
Bu, bu olayı alan HTML elementidir:
Örnek
<button onclick="this.style.display='none'"> Bana tıklayarak sil! </button>
Nesne yöntemi bağlama
Bu örnekte,this
Bu person nesnesi (person nesnesi bu fonksiyonun "sahibi"dir):
Örnek
var person = { firstName : "Bill", lastName : "Gates", id : 678, myFunction : function() { return this; } };
Örnek
var person = { firstName: "Bill", lastName : "Gates", id : 678, fullName : function() { return this.firstName + " " + this.lastName; } };
Yanithis.firstName anlamına gelir thiskendi firstName Özellikleri.
Açık fonksiyon bağlama
call()
ve apply()
Önceden tanımlanmış JavaScript yöntemleri.
Biri diğeri olarak parametre olarak bir nesne yöntemi çağırmak için kullanılabilirler.
Bu eğitimin sonunda ilgili konular hakkında okuyabilirsiniz. call()
ve apply()
daha fazla bilgi için.
person2'ı person1.fullName olarak parametre olarak kullanarak çağrıldığında aşağıdaki örnekte,this
person2'ı person1'in yöntemi olarak kullanacak:
Örnek
var person1 = { fullName: function() { return this.firstName + " " + this.lastName; } } var person2 = { firstName:"Bill", lastName: "Gates", } person1.fullName.call(person2); // "Bill Gates" döndürecektir"
- Önceki Sayfa JS Sıkı Mod
- Sonraki Sayfa JS Okçuluk Fonksiyonları