Contoh dalam artikel ini menerangkan penggunaan fungsi tanpa nama JavaScript. Kongsikan dengan semua orang untuk rujukan anda. Butirannya adalah seperti berikut:
1. Tentukan fungsi
Dalam JavaScript, fungsi boleh ditakrifkan melalui "pengisytiharan fungsi" dan "ungkapan fungsi", seperti
1. Tentukan fungsi melalui "pengisytiharan fungsi"
function t1(){}
2. Takrifkan fungsi melalui "ungkapan fungsi"
t2 = function(){}
Tetapi kesan mentakrifkan fungsi dalam dua cara adalah berbeza
t1 ialah pengisytiharan fungsi semasa 'analisis leksikal', AO.t1 = function(){},-------------ia akan memainkan peranan dalam peringkat 'analisis leksikal'
t2 ialah operasi tugasan Semasa 'run', AO.t2 = function(){}, nilai ialah hasil yang dikembalikan oleh ungkapan di sebelah kanan, ------ia hanya dimainkan dalam 'run'. pentas
2. Fungsi tanpa nama
Dalam JavaScript, penyataan dalam kurungan () dilaksanakan sebagai ungkapan Seperti yang dinyatakan di atas, anda boleh menggunakan "ungkapan fungsi" untuk menentukan fungsi, kemudian, kita boleh mentakrifkan fungsi dalam (), seperti
(function t3(){alert(' i am t3');})
Jika fungsi tidak menggunakan nama, ubah suainya seperti berikut
(function(){alert(' i am t3');})
Memandangkan pernyataan yang terkandung dalam () ialah ungkapan, ia mempunyai nilai pulangan Nilai pulangan (function(){alert(' i am t3');}) ialah fungsi yang ditakrifkan, yang boleh dipanggil serta-merta. , seperti
(function(){alert(' i am t3');})()
Oleh itu, tentukan fungsi tanpa nama dalam kurungan (), yang dipanggil fungsi tanpa nama. Dengan cara ini, fungsi tanpa nama dilaksanakan serta-merta tanpa mencemarkan keadaan global, yang dipanggil pelaksanaan segera ungkapan fungsi.
3. jquery ialah fungsi tanpa nama
Kod jquery dirangkumkan dalam fungsi tanpa nama Ini adalah kod terluar jquery:
(function(window,undefined){})(window);//立即调用
Tetapi mengapa jquery melepasi tetingkap tetapi tidak tidak ditentukan?
Jawapan: Tujuan lulus tetingkap adalah untuk mempercepatkan carian dan mengurangkan masa menanyakan pembolehubah. Contohnya, kod js berikut
function(){ function(){ function(){ function(){ document.getElementById(); //这个document将会沿作用域层层上找,直到最外层window全局。 } } } }
Untuk mempercepatkan carian dalaman pembolehubah tempatan, jquery terus melepasi tetingkap sebagai parameter, supaya tetingkap berada pada AO dalaman jquery.
Sebab untuk tidak lulus undefined adalah untuk keselamatan, kerana dalam versi IE dan FF yang lebih rendah, undefined boleh ditugaskan semula, seperti undefined=3;
Istiharkan pembolehubah tempatan tidak ditentukan (nama tidak ditentukan), dan pada masa yang sama, tanpa lulus parameter, nilai secara semula jadi tidak ditentukanSaya harap artikel ini akan membantu reka bentuk pengaturcaraan JavaScript semua orang.