我發佈這個,因爲我深入研究了JavaScript和jQuery。以下代碼
$(function() {
alert('instance');
});
$(alert('hi'));
按順序發出「hi」和「instance」!我確信對js的想法有一個理解,因爲我認爲這將是「實例」和「嗨」 - 任何人都可以解釋這一點嗎?謝謝
我發佈這個,因爲我深入研究了JavaScript和jQuery。以下代碼
$(function() {
alert('instance');
});
$(alert('hi'));
按順序發出「hi」和「instance」!我確信對js的想法有一個理解,因爲我認爲這將是「實例」和「嗨」 - 任何人都可以解釋這一點嗎?謝謝
$(function() { ... })
第二種情況是$(document).ready(function() { ... })
別名你的第二個是有點無厘頭和評估的東西像這樣:
警報「嗨」,然後創建返回值(我相信undefined
)
$(function(){})
是$(document).ready(function(){})的快捷方式,這意味着$(function(){})
中的代碼執行將被延遲,直到文檔被完全加載。
這裏的代碼執行順序將會像
$(function(){})
得到執行,導致註冊文檔準備回調$(alert('hi'));
得到執行,這裏alert('hi')
得到執行,導致彈出式窗口,它返回一個未定義的值到將忽略它的jQuery。instance
的代碼之間的區別在於你是不是立刻執行功能的第一種情況下執行,要傳遞的功能一個參數給jQuery(因爲在函數定義之後沒有()
)。 在你調用alert('hi')
這將導致立即調用alert
然後的alert
返回的值傳遞給jQuery的
我相信他失蹤的部分是他對$()的第二次調用正在傳遞警報的結果。 – 2013-04-29 12:42:32
的jQuery對象當你做
$(function() {
alert('instance');
});
,一個函數創建了會提醒「實例」,則函數傳遞給jQuery的($
)。 JQuery會記住該函數,並在加載DOM樹時調用該函數。這是$(document).ready(function(){...})
的別名。
當你
$(alert('hi'));
alert('hi')
立即調用,並且返回值將被傳遞給jQuery的。在「當DOM樹加載完成」之前,「立即」機會就會發生。
我測試過的每個地方,alert
返回undefined
。據我所知,將undefined
傳遞給jQuery並沒有明顯的效果。
謝謝,$(something)=== $(document).ready(something)是我需要知道的事實 – 2013-04-29 18:23:08