DISKON TERBATAS! Masukkan kupon "skillbaru" saat checkout di kelas apa saja
Skodev
Belajar coding dalam bahasa Indonesia
Memahami konsep 'this' pada javascript, penggunaan dan contoh-contoh pengaplikasiannya dalam berbagai situasi.
Di dunia pemrograman, ‘this’ seringkali membingungkan, terutama kursus dalam konsep Object Oriented Programming (OOP). ‘This’ pada Javascript memiliki karakteristik yang unik dan juga penting untuk dipahami.
Dalam Javascript, ‘this’ adalah kata kunci khusus yang dapat didefinisikan secara dinamis saat berjalannya eksekusi kode. Kata kunci ‘this’ merujuk pada objek konteks di mana kode saat ini sedang dieksekusi, ini bisa berisi objek global, objek saat ini, atau objek lainnya tergantung pada konteks.
Jika kamu menggunakan ‘this’ dalam fungsi biasa, nilai ‘this’ akan merujuk pada objek global, yang dalam hal ini adalah objek window (dalam browser).
function test() {
console.log(this);
}
test();
// output: Window {...}
Jika ‘this’ digunakan dalam metode objek, maka ‘this’ akan merujuk pada objek tersebut.
let obj = {
name: 'Budi',
age: 25,
hello: function() {
console.log('Halo, namaku adalah ' + this.name);
}
}
obj.hello();
// output: 'Halo, namaku adalah Budi'
Dalam konteks konstruktor, ‘this’ merujuk ke instance baru yang dihasilkan oleh konstruktor.
function User(name, age) {
this.name = name;
this.age = age;
}
let user1 = new User('Ali', 20);
console.log(user1.name);
// output: 'Ali'
Dalam arrow functions, ‘this’ menetap tidak berubah dari lingkup di mana fungsi arrow tersebut dideklarasikan.
let obj = {
name: 'Budi',
age: 25,
hello: () => {
console.log('Halo, namaku adalah ' + this.name);
}
}
obj.hello();
// output: 'Halo, namaku adalah undefined'
Pada contoh di atas, ‘this’ tidak merujuk ke objek tapi sebaliknya merujuk ke objek global. Hal ini menunjukkan bahwa perilaku ‘this’ dalam arrow functions berbeda dengan fungsi biasa dan metode objek.
Memahami ‘this’ di Javascript memang membingungkan. Namun, dengan memahami dan mengingat konteks di mana ‘this’ digunakan, kamu dapat mengantisipasi perilaku ‘this’ dan menghindari bug yang tidak perlu dalam kode Javascript kamu.