Javascript Function Closure

Javascript Function Closure

Dear Pembaca Setia,

Kali ini penulis ingin sharing tentang suatu prinsip di Javascript yang sedikit berbeda dengan pemrograman lain. Salah satu prinsip tersebut bernama Javascript Function Closure. Secara teknis,

A Closure adalah sebuah fungsi yang memiliki akses ke fungsi di atasnya (parent scope), bahkan ketika fungsi tersebut sudah ditutup. js_closure

Sebagai contoh:

Saat kita membuat fungsi berikut:

 function add() {
	var counter = 0;
	counter += 1;
}

add();
add();
add();// Nilai counter harusnya 3, namun hal tersebut tidak terjadi!

Untuk itu kita membutuhkan Closure. Salah satu fitur di Javascript yaitu self-invoking functions. Hasilnya akan menjadi demikian

var add = (function () {
	var counter = 0;
	return function () {return counter += 1;}
})();

add();
add();
add();
// Sekarang baru counter-nya memiliki nilai 3

Penjelasan:
Variable add diisi dengan nilai balikan self-invoking function. Self-invoking function ini hanya berjalan sekali. Fungsi ini akan membuat nilai counter menjadi nol (0), selanjutnya menjalankan perintah yang ada di dalam fungsi tersebut. Dengan demikian add menjadi sebuah fungsi, dan yang paling mengesankan, dapat mengakses counter di cakupan fungsi di atasnya (parent scope).

Demikian dulu untuk hari ini. Semoga bermanfaat.

Sumber