Pemrograman fungsional : Apa itu konsep Penutupan ? (JavaScript/TypeScript)
Setiap kali kami menulis kode, kami menulis fungsi. Fungsi adalah blok kode yang dapat digunakan kembali yang dapat dipanggil di mana saja.
Saat kita memanggil suatu fungsi, kita dapat memberikan input sebagai argumen, ia menjalankan kode dan mengembalikan output.
Apa itu Konsep Penutupan?
Konsep penutupan adalah deklarasi fungsi di dalam fungsi lain. Konsep ini memberikan kemampuan pada fungsi bagian dalam untuk mengakses status fungsi bagian luar (menyukai variabel dan argumen).
Mari kita lihat contoh kode
const outerFunction = () => {
const state = 10;
const printState = () => {
console.log(state);
};
printState();
};
outerFunction(); // print : 10
Mendeklarasikan sebuah fungsi di dalam yang lain memungkinkan kita untuk menulis beberapa kode dan mendeklarasikan apa yang dilakukan kode ini dengan menamai fungsi tersebut. Keuntungannya adalah kode kita menjadi lebih deklaratif. Sekarang kita tahu apa yang kode kita lakukan dengan membaca nama fungsi daripada membaca kode itu sendiri.
Kode tanpa penutupan
mari lihat kode tanpa penutupan
const getFileSeparatorByOs = (os: 'linux' | 'windows', enableOsCheking = true) => {
if (enableOsCheking) {
if (os === 'linux') {
return '/';
}
if (os === 'windows') {
return '\\'
}
} else {
return '/'
}
};
const linuxSeparator = getFileSeparatorByOs('linux');
console.log(linuxSeparator);
const windowsSeparator = getFileSeparatorByOs('windows');
console.log(windowsSeparator);
const defaultSeparator = getFileSeparatorByOs('windows', false);
console.log(defaultSeparator);
Kode ini tidak terlalu rumit untuk dipahami, tetapi kita dapat membuatnya lebih deklaratif (mudah dibaca).
Kode dengan penutupan
mari lihat kode tanpa penutupan
const getFileSeparatorByOs = (os: 'linux' | 'windows', enableOsCheking = true) => {
const getLinuxSeparator = () => '/';
const getWindowsSeparator = () => '\\';
const getDefaultSeparator = () => '/';
if (enableOsCheking) {
if (os === 'linux') {
return getLinuxSeparator();
}
if (os === 'windows') {
return getWindowsSeparator();
}
} else {
return getDefaultSeparator();
}
};
const linuxSeparator = getFileSeparatorByOs('linux');
console.log(linuxSeparator);
const windowsSeparator = getFileSeparatorByOs('windows');
console.log(windowsSeparator);
const defaultSeparator = getFileSeparatorByOs('windows', false);
console.log(defaultSeparator);
Kesimpulan
Konsep penutupan mendeklarasikan fungsi di dalam yang lain untuk memberinya akses ke status fungsi luar.
Jika Anda tertarik dengan pemrograman fungsional, inilah artikel saya tentang fungsi karifikasi https://link.medium.com/JAoSkvB3Byb
Jika artikel ini bermanfaat bagi Anda, tolong beri suka. Dan, jika Anda menyukai konsep pemrograman yang memungkinkan Anda membuat kode dengan bersih, berlanggananlah sekarang, agar Anda tidak melewatkan apa pun.

![Apa itu Linked List? [Bagian 1]](https://post.nghiatu.com/assets/images/m/max/724/1*Xokk6XOjWyIGCBujkJsCzQ.jpeg)



































