2012-06-19 27 views
0

我發現我可以通過回調的陣列以jQuery的(文件)。就緒():無證jQuery的.ready函數簽名

var test1 = function(){alert('test1')}, test2 = function(){alert('test2')}; 
$(document).ready([test1,test2])​ 

它不與.bind工作()或它的別名這樣作爲.click()。 jsfiddle的一個快速測試表明,這個功能至少在jQuery 1.5.2之後,但我沒有在任何地方看到它。我只是在文檔中錯過了嗎?使用無證函數簽名有缺點嗎?作爲一個側面的問題,還有其他有用的未記錄的jQuery功能,您發現它們有用嗎?

+1

這是因爲jQuery使用['Callbacks.add'](http://api.jquery.com/callbacks.add/)[內部](https://github.com/jquery/jquery/blob/1.7。 2/SRC/core.js#L258)。有趣的是,實現在代碼的開發版本中是不同的(將參數傳遞給承諾對象的'.done()')。它不應該有所作爲,但只是表明這種行爲可以輕易改變。 –

+2

開發團隊可以告訴你許多無證的事情你可以做...但非常懷疑他們會打電話讓你知道,當他們打破他們 – charlietfl

+0

@FelixKling。如果它確實有效,那就很奇怪了,因爲jQuery只有在獲得函數時才調用'ready'。 [源代碼](https://github.com/jquery/jquery/blob/1.7.2/src/core.js#L176)源代碼中沒有數組過載。 – gdoron

回答

1

使用無證函數簽名有缺點嗎?

是的。

O.k.我會再添加一個句子:如果它不是文檔,則不支持=>不可靠。