Membuat Pola Modular
Disini kita memanfaatkan fungsi yang berjalan sendiri untuk membuat modul. Mari kita lihat kodenya
var awesomeNewModule = (function(){
var exports = {
foo: 5,
bar: 10
};
exports.helloMars = function() {
console.log("Hello Mars!");
};
exports.goodbye = function() {
console.log("Goodbye!");
};
return exports
}());
Disini, kita memiliki dua buah fungsi ekspresi, helloMars _dan _goodbye. Tapi kedua fungsi ekspresi tersebut tidak dapat diakses dengan memanggil langsung, melainkan, kita harus memanggil dahulu modulnya, lalu dapat mengakses konten di dalamnya.
Disini, kita tidak akan mengalami konflik penamaan jika terdapat nama ekspresi yang sama, karena posisinya ada di dalam suatu modul.
Jadi untuk memanggil helloMars kita perlu memanggil dahulu nama modulnya, kemudian fungsinya
awesomeNewModule.helloMars() // "Hello Mars!"
Atau dengan sedikit cara yang berbeda, akan tampak seperti ini
(function() {
// declare private variables and/or functions
return {
// declare public variables and/or functions
}
})();
Hanya fungsi yang kita tuliskan di dalam return yang akan bersifat global, selebihnya adalah privasi dai fungsi tersebut.