JavaScript bu Anahtar Kelime
Örnek
const person = {
firstName: "John",
lastName : "Doe",
id : 5566,
fullName : function() {
return this.firstName + " " + this.lastName;
}
};
Bu nedir ?
JavaScript this
anahtar sözcüğü, ait olduğu nesneyi ifade eder.
Kullanıldığı yere göre farklı değerlere sahiptir:
- Bir yöntemde,
this
sahip nesnesine başvurur . - Tek başına, global nesneyi
this
ifade eder . - Bir fonksiyonda, global nesneyi
this
ifade eder . - Bir işlevde, katı modda
this
,undefined
. - Bir olayda, olayı alan öğeye
this
atıfta bulunur . call()
ve gibi yöntemler herhangi bir nesneyeapply()
başvurabilir .this
bu bir Yöntemde
Bir nesne yönteminde, yöntemin this
" sahibini " ifade eder.
Bu sayfanın üst kısmındaki örnekte, kişi nesnesine this
atıfta bulunulmaktadır .
person nesnesi fullName yönteminin sahibidir . _
fullName : function() {
return this.firstName + " " + this.lastName;
}
bu Yalnız
Tek başına kullanıldığında, sahibi Global nesnedir, dolayısıyla Global nesneye this
atıfta bulunur.
Bir tarayıcı penceresinde Global nesne şudur [object Window]
:
Örnek
let x = this;
Katı modda , tek başına kullanıldığında this
Global nesneye de atıfta bulunur
[object Window]
:
Örnek
"use strict";
let x = this;
bu bir İşlevde (Varsayılan)
Bir JavaScript işlevinde, işlevin sahibi, için varsayılan bağlamadır this
.
Bu nedenle, bir işlevde, this
Global nesneye başvurur [object Window]
.
Örnek
function myFunction() {
return this;
}
bu bir İşlevde (Strict)
JavaScript katı modu , varsayılan bağlamaya izin vermez.
Bu nedenle, bir işlevde, katı modda kullanıldığında this
, undefined
.
Örnek
"use strict";
function myFunction() {
return this;
}
bu Olay İşleyicilerde
HTML olay işleyicilerinde, olayı this
alan HTML öğesini ifade eder:
Örnek
<button onclick="this.style.display='none'">
Click to
Remove Me!
</button>
Nesne Yöntemi Bağlama
Bu örneklerde, this
kişi nesnesidir (kişi nesnesi, işlevin "sahibidir"):
Örnek
const person = {
firstName : "John",
lastName : "Doe",
id : 5566,
myFunction : function() {
return this;
}
};
Örnek
const person = {
firstName: "John",
lastName : "Doe",
id : 5566,
fullName : function() {
return this.firstName + " " +
this.lastName;
}
};
Başka bir deyişle: this.firstName , bu (kişi) nesnesinin firstName özelliği anlamına gelir .
Açık İşlev Bağlama
ve call()
yöntemleri apply()
önceden tanımlanmış JavaScript yöntemleridir.
Her ikisi de argüman olarak başka bir nesneyle bir nesne yöntemini çağırmak için kullanılabilir.
Bu eğitimde call()
ve daha sonra hakkında daha fazla bilgi edinebilirsiniz .apply()
Aşağıdaki örnekte, argüman olarak person2 ile person1.fullName this
çağrılırken, bu bir person1 yöntemi olsa bile person2'ye atıfta bulunacaktır:
Örnek
const person1 = {
fullName: function() {
return this.firstName + " " + this.lastName;
}
}
const person2 = {
firstName:"John",
lastName: "Doe",
}
person1.fullName.call(person2); // Will return "John Doe"