JavaScript Kata Kunci ini
Contoh
const person = {
firstName: "John",
lastName : "Doe",
id : 5566,
fullName : function() {
return this.firstName + " " + this.lastName;
}
};
Apa ini ?
Kata kunci JavaScript this
mengacu pada objek miliknya.
Ini memiliki nilai yang berbeda tergantung di mana ia digunakan:
- Dalam suatu metode,
this
mengacu pada objek pemilik . - Sendiri,
this
mengacu pada objek global . - Dalam suatu fungsi,
this
mengacu pada objek global . - Dalam suatu fungsi, dalam mode ketat,
this
adalahundefined
. - Dalam suatu peristiwa,
this
mengacu pada elemen yang menerima peristiwa tersebut. - Metode seperti
call()
, danapply()
dapat merujukthis
ke objek apapun .
ini dalam Metode
Dalam metode objek, this
mengacu pada " pemilik " metode.
Pada contoh di bagian atas halaman ini, this
mengacu pada objek orang .
Objek person adalah pemilik metode fullName .
fullName : function() {
return this.firstName + " " + this.lastName;
}
ini sendirian
Saat digunakan sendiri, pemiliknya adalah objek Global, jadi this
mengacu pada objek Global.
Di jendela browser, objek Global adalah [object Window]
:
Contoh
let x = this;
Dalam mode ketat , saat digunakan sendiri, this
juga merujuk ke objek Global
[object Window]
:
Contoh
"use strict";
let x = this;
ini dalam Fungsi (Default)
Dalam fungsi JavaScript, pemilik fungsi adalah pengikatan defaultthis
untuk .
Jadi, dalam suatu fungsi, this
mengacu pada objek Global [object Window]
.
Contoh
function myFunction() {
return this;
}
ini dalam Fungsi (Ketat)
Mode ketat JavaScript tidak mengizinkan pengikatan default.
Jadi, ketika digunakan dalam suatu fungsi, dalam mode ketat, this
adalah undefined
.
Contoh
"use strict";
function myFunction() {
return this;
}
ini di Penangan Acara
Dalam event handler HTML, this
mengacu pada elemen HTML yang menerima event:
Contoh
<button onclick="this.style.display='none'">
Click to
Remove Me!
</button>
Pengikatan Metode Objek
Dalam contoh ini, this
adalah objek person (Objek person adalah "pemilik" fungsi):
Contoh
const person = {
firstName : "John",
lastName : "Doe",
id : 5566,
myFunction : function() {
return this;
}
};
Contoh
const person = {
firstName: "John",
lastName : "Doe",
id : 5566,
fullName : function() {
return this.firstName + " " +
this.lastName;
}
};
Dengan kata lain: this.firstName berarti properti firstName dari objek (orang) ini .
Pengikatan Fungsi Eksplisit
Metode call()
and apply()
adalah metode JavaScript yang telah ditentukan sebelumnya.
Keduanya dapat digunakan untuk memanggil metode objek dengan objek lain sebagai argumen.
Anda dapat membaca lebih lanjut tentang call()
dan apply()
nanti di tutorial ini.
Dalam contoh di bawah, saat memanggil person1.fullName dengan person2 sebagai argumen, this
akan merujuk ke person2, meskipun itu adalah metode person1:
Contoh
const person1 = {
fullName: function() {
return this.firstName + " " + this.lastName;
}
}
const person2 = {
firstName:"John",
lastName: "Doe",
}
person1.fullName.call(person2); // Will return "John Doe"