Postingan lainnya
Buku Ini Koding!
Baru!
Buku ini akan jadi teman perjalanan kamu belajar sampai dapat kerjaan di dunia programming!
Kelas Premium!
Belajar Javascript untuk website
Gunakan kupon "mulaijs" untuk diskon 75 ribu!
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>