Modul melalui Closure di JavaScript
Masalah yang dijelaskan di atas umum terjadi dalam bahasa pemrograman apa pun. Sebagai solusinya, digunakan yang disebut modul.
Modul merupakan suatu konstruksi yang dibuat sedemikian rupa sehingga variabel dan fungsi di dalamnya hanya terlihat di dalam modul itu sendiri dan tidak mengganggu kode di luarnya.
Di JavaScript, terdapat beberapa jenis modul. Modul melalui closure yang paling sederhana dibuat menggunakan Immediately Invoked Function Expression (IIFE), seperti ini:
;(function() {
// kode modul di sini
})();
Variabel dan fungsi yang dibuat di dalam modul seperti ini tidak akan terlihat dari luar modul:
;(function() {
let str = 'variabel modul';
function func() {
alert('fungsi modul');
}
})();
// Di sini variabel dan fungsi modul tidak dapat diakses:
alert(str);
alert(func);