Apa perbedaan antara keduanya.
$(document).ready(function(){ ... });
(function(){ ... })();
Apakah kedua fungsi ini dipanggil pada waktu yang bersamaan? Saya tahu, document.ready akan dipicu ketika seluruh halaman HTML dirender oleh browser tetapi bagaimana dengan fungsi ke-2 (fungsi anonim memanggil sendiri). Apakah menunggu browser selesai merender halaman atau dipanggil setiap kali ditemukan?
javascript
jquery
Ashit Vora
sumber
sumber
$(function() {});
setara dengan$(document).ready(function() {});
Jawaban:
$(document).ready(function(){ ... });
atau pendek$(function(){...});
Fungsi ini dipanggil ketika
DOM is ready
artinya, Anda bisa mulai membuat kueri elemen misalnya..ready()
akan menggunakan cara berbeda pada browser berbeda untuk memastikan DOM benar-benar siap.(function(){ ... })();
Itu tidak lain adalah fungsi yang memanggil dirinya sendiri sesegera mungkin saat browser menafsirkan file
ecma-/javascript
. Oleh karena itu, sangat tidak mungkin Anda berhasil bertindak diDOM elements
sini.sumber
(function(){ ... })();
tidakkah kode JS berjalan secepat mungkin? Jika Anda mengatakan,alert()
di dalam SIAF atau di luarnya, bukankah efeknya akan sama?(function(){...})();
akan dieksekusi segera setelah ditemukan di Javascript.$(document).ready()
akan dijalankan setelah dokumen dimuat.$(function(){...});
adalah jalan pintas untuk$(document).ready()
dan melakukan hal yang persis sama.sumber
$(document).ready(function() { ... });
cukup mengikat fungsi itu keready
acara dokumen, jadi, seperti yang Anda katakan, saat dokumen dimuat, peristiwa tersebut dipicu.(function($) { ... })(jQuery);
sebenarnya adalah sebuah konstruksi Javascript, dan semua bagian kode itu lakukan adalah meneruskanjQuery
objek kefunction($)
sebagai parameter dan menjalankan fungsinya, jadi di dalam fungsi itu,$
selalu mengacu padajQuery
objek. Ini dapat membantu menyelesaikan konflik spasi nama, dll.Jadi # 1 dijalankan ketika dokumen dimuat, sementara # 2 dijalankan segera, dengan
jQuery
objek bernama$
singkatan.sumber
Kode berikut akan dieksekusi ketika DOM (Model objek dokumen) siap untuk dieksekusi kode JavaScript.
$(document).ready(function(){ // Write code here });
Kependekan dari kode di atas adalah:
$(function(){ // write code here });
Kode yang ditunjukkan di bawah ini adalah fungsi JavaScript anonim yang memanggil sendiri, dan akan dijalankan segera setelah browser menafsirkannya:
(function(){ //write code here })(); // It is the parenthesis here that call the function.
Fungsi jQuery self-invoking yang ditunjukkan di bawah ini, meneruskan objek jQuery global sebagai argumen ke
function($)
. Ini memungkinkan$
untuk digunakan secara lokal dalam fungsi pemanggilan mandiri tanpa perlu melintasi cakupan global untuk suatu definisi. jQuery bukan satu-satunya pustaka yang memanfaatkan$
, jadi ini mengurangi potensi konflik penamaan.(function($){ //some code })(jQuery);
sumber
document.ready run setelah DOM "dibangun". Fungsi pemanggilan sendiri berjalan secara instan - jika dimasukkan ke
<head>
, sebelum DOM dibuat.sumber
<head>
, dan aturannya tidak berbeda setelah DOM awal dibuat.