DISKON 50% terbatas! 🎉 Gunakan kupon "programmer2025"di kelas apa saja
Skodev
Belajar coding dalam bahasa Indonesia
Daftar Isi:
Halo sobat Skodev!
Buat kamu yang sedang mendalami JavaScript, pasti sering menjumpai keyword this. Bagi pemula, konsep dari keyword this dalam JavaScript sering membingungkan dan kesulitan memahami kapan dan bagaimana this dapat digunakan pada objek tertentu.
Tapi, jangan khawatir, dalam artikel kali ini, kita akan membahas cara penggunaan this dalam JavaScript lebih mendalam dengan cara yang sederhana dan mudah dimengerti, terutama untuk pemula.
Namun, sebelum mempelajari penggunaan this, ada beberapa konsep dasar yang perlu kamu kuasai terlebih dahulu, yuk simak artikel berikut:
this?this adalah keyword atau kata kunci yang merujuk ke suatu object yang sedang diproses atau pada konteks dimana this itu berada. Penggunaan this juga tergantung pada konteks tempat dan cara this merujuk pada object tertentu saat dijalankan.
this?Penggunaan this dalam JavaScript bergantung pada dimana ia dipanggil dan merujuk pada object yang sedang diproses oleh kode serta cara kerjanya tergantung pada jenis fungsinya. Berikut ini adalah empat cara penggunaan this:
this di fungsi globalthis dalam fungsi global merujuk pada object global dimana kode JavaScript dijalankan. Jadi, jika fungsi biasa dipanggil di luar object atau class, maka nilai this yang di dalam fungsi tersebut akan merujuk ke object global. Object global yang dihasilkan ini bergantung pada tempat eksekusi kodenya. Jika di browser maka object global yang dihasilkan adalah window, sedangkan di Node.js, hasil object globalnya adalah global.
Object global adalah object utama tempat semua fungsi dan properti JavaScript berada.
Berikut contoh dalam menuliskan this di fungsi global:
function tampilkanThis() {
console.log(this);
}
tampilkanThis(); // output yang akan dihasilkan berupa Window { …}
Penjelasan kode di atas:
Saat fungsi tampilkanThis dipanggil sedang diluar object atau kelas, nilai this akan merujuk pada object global dengan output window karena berada di lingkungan browser.
this di dalam objekPenggunaan this dapat digunakan merujuk object tertentu dalam konteks object itu sendiri. Misalnya kamu punya object Laptop dan ingin mengetahui info terkait laptop tersebut, kamu bisa menuliskan kode seperti berikut:
const laptop = {
merek: ‘Lenovo’,
tahunProduksi: 2021,
infoLaptop: function() {
console.log(this.merek + ‘ ‘ + this.tahun-produksi);
}
};
laptop.infoLaptop(); // Output atau hasilnya akan berupa Lenovo 2021
Penjelasan kode di atas:
Kode di atas mempunyai metode infoLaptop dan this merujuk pada object laptop. Sehingga saat kamu mengakses laptop.infoLaptop(), this yang merujuk pada object laptop akan memberikan hasil atau output berupa Lenovo 2021.
this di fungsi biasaFungsi biasa adalah yang didefinisikan menggunakan keyword function. Dalam penggunaan this pada fungsi ini bergantung dari cara pemanggilannya. Ada dua cara pemanggilan fungsi tersebut, yakni tanpa strict mode (default) dan dengan strict mode.
Jika strict mode atau default ini dipanggil tanpa konteks, maka this akan mengacu pada object global yang menghasilkan output window dan global. Sedangkan jika dipanggil dalam strict mode, maka this akan menghasilkan output undefined jika dipanggil tanpa konteks object tertentu.
Berikut contoh dalam menuliskan this di fungsi biasa dengan strict mode (default):
function laptop() {
console.log(this);
}
laptop(); // Di browser: `this` mengacu pada `window`, di Node.js: `this` mengacu pada `global`
Contoh menuliskan this di fungsi biasa dengan cara strict mode:
function laptop() {
"use strict"; // Mengaktifkan strict mode hanya untuk fungsi ini
console.log(this); // `this` akan undefined di strict mode
}
laptop(); // output yang dihasilkan undefined
Penjelasan kode dengan cara strict mode:
Kode di atas terdapat "use strict"; yang digunakan untuk mengaktifkan strict mode di dalam fungsi. Sehingga ketika fungsi tersebut dipanggil tanpa konteks dengan strict mode, maka this akan bernilai undefined.
this di Arrow FunctionArrow function adalah penulisan fungsi secara ringkas, berbeda dengan fungsi biasa yang harus menggunakan keyword function. Arrow function tidak mempunyai konteks sendiri terhadap this. Nilai yang akan dihasilkan this pada arrow function akan diambil dari konteks fungsi yang didefinisikan berada atau lexical scoping.
Berikut contoh dalam menuliskan this di arrow function:
function Laptop(info) {
this.nama = info; // Menggunakan info yang diterima saat pembuatan objek
this.cariLaptop = () => {
console.log(`Nama laptop ini adalah ${this.nama}`);
};
}
const laptop = new Laptop('Lenovo');
laptop.cariLaptop(); // Output: Nama laptop ini adalah Lenovo
Penjelasan kode di atas:
Arrow function pada kode di atas terletak pada metode cariLaptop dimana terletak pada object Laptop. Ketika cariLaptop dipanggil, this akan mengacu pada object laptop, sehingga output yang dihasilkan adalah Nama laptop ini adalah Lenovo.
Perlu diingat bahwa this mempunyai sifat yang fleksibel, sehingga cara kerjanya bisa berbeda-beda, tergantung dimana dan bagaimana kode yang akan kamu gunakan. Pemahaman yang baik tentang bagaimana this dapat berjalan sangat penting untuk menghindari kebingungan. Semoga dengan penjelasan mengenai this dalam JavaScript ini dapat membantu kamu, ya!
Selamat mengeksplor pemahaman baru sobat Skodev!
I am a Bachelor of Indonesian Literature at Diponegoro University who has experience as a Content Creator, Copy Writer and Copy Writer
Link terkait: