Postingan lainnya
Apa maksud function berikut?
Saya bingung kenapa function ini dibungkus oleh kurung buka/tutup? dan mengapa setelah tutup kurung function juga ada buka/tutup kurung lagi?
var foo = "Hello";
(function() {
var bar = " World";
alert(foo + bar);
})();
alert(foo + bar);
2 Jawaban:
oh itu itu scope misal variable foo adalah variable global jadi bisa di akses di luar maupun di dalam fungsi kalo bar itu cuman bisa di akses dari dalem , tapi bisa juga dari luar tapi sy lupa caranya
Tanggapan
Bisa bang, tapi caranya sedikit beda. Kalau mau akses local variabel bisa pake window.value
Jadi :
window.sayHello = "Azril ardian";
function show(){
alert(window.sayHello);
}
show();
Jawaban Terpilih
itu namanya IIFE (Immediately-Invoked Function Expression) <a href='https://en.wikipedia.org/wiki/Immediately-invoked_function_expression'>https://en.wikipedia.org/wiki/Immediately-invoked_function_expression</a>
maksudnya itu function langsung tereksekusi pada saat script berjalan
<pre>dan mengapa setelah tutup kurung function juga ada buka/tutup kurung lagi?</pre> tanda kurung terakhir itu sebagai execution, makanya kenapa fungsi tersebut langsung berjalan. jadi bukan hanya deklarasi saja seperti fungsi pada umumnya
kalau di breakdown kurang lebih seperti ini
<pre> // function pada umumnya var foo = "Hello"; // named function function iife() { var bar = " World"; alert(foo + bar); } // execution iife(); </pre> nah kode diatas var iife dibuat anonymous function alias tanpa nama, dan langsung di kasih executionnya
<pre> // IIFE var foo = "Hello"; // anonymous function + execution (function() { var bar = " World"; alert(foo + bar); })(); </pre>