Arrow Function
Sintaks fungsi ringkas dengan => : cara tulis, implicit return, dan perbedaan this.
Fungsi versi ringkas
Arrow function adalah cara modern menulis fungsi dengan sintaks lebih pendek. Ciri khasnya tanda panah =>.
// cara lama
function tambah(a, b) {
return a + b;
}
// arrow function
const tambah = (a, b) => {
return a + b;
};
// lebih ringkas lagi: implicit return
const tambah2 = (a, b) => a + b;
console.log(tambah2(3, 4)); // 7Aturan penulisan
const sapa = nama => "Halo, " + nama; // 1 parameter: kurung boleh dihapus
const halo = () => "Halo!"; // 0 parameter: kurung wajib
const kali = (a, b) => { // banyak baris: butuh kurung kurawal + return
let hasil = a * b;
return hasil;
};Kalau badan fungsi hanya satu expression, kurung kurawal boleh dihapus dan nilainya otomatis di-return (implicit return).
Sangat cocok untuk callback
Arrow function bersinar sebagai callback di array method dan event:
let angka = [1, 2, 3, 4];
let kuadrat = angka.map(n => n * n);
console.log(kuadrat); // [1, 4, 9, 16]Bandingkan dengan function biasa yang butuh tiga baris untuk hal yang sama. Di kode modern, kamu akan melihat arrow function di mana-mana.
Catatan teknis: Arrow function tidak punya this sendiri, ia mewarisi this dari scope sekitarnya (lexical this). Ini enak untuk callback, tapi berarti arrow function TIDAK cocok dipakai sebagai method object kalau method itu butuh this merujuk ke object-nya. Untuk method, pakai function biasa atau method shorthand.
Kapan tetap pakai function biasa?
Arrow function bukan pengganti total. Tetap pakai function biasa untuk:
- Method object yang butuh this merujuk ke objectnya.
- Fungsi constructor (sebelum era class) karena arrow tidak bisa dipakai dengan new.
- Fungsi yang butuh arguments object karena arrow tidak punya arguments sendiri.
let kalkulator = {
angka: 10,
// benar: method shorthand, this = kalkulator
tambah(n) { return this.angka + n; },
// salah: arrow, this bukan kalkulator
kurang: (n) => this.angka - n
};
console.log(kalkulator.tambah(5)); // 15Aturan praktis di kode modern: arrow function untuk callback dan fungsi util singkat, function/method shorthand untuk method dan fungsi bernama yang kompleks. Konsisten dalam satu codebase lebih penting daripada aturan kaku.
Kesimpulan
Pakai arrow function untuk fungsi singkat, terutama callback. Untuk fungsi bernama yang kompleks atau method object, function biasa tetap valid. Keduanya sah, pilih yang paling jelas.