jQuery如何允許其構造函數作爲接受參數的函數來使用,同時它的構造函數也可以作爲接受參數的函數?jQuery原型和構造函數鏈接
我對JavaScript有點新,所以請原諒,如果這是一個noob問題,(我已經看過源代碼但很難嘗試解剖)。
無論如何,作爲示例$(document).ready(<args>);
構造函數$()
和原型ready()
充當函數。怎麼樣?因爲如果我試試這個:
var $ = function(selector) {
if(selector == document) {
return document;
}
};
$.prototype = {
constructor: $,
ready: function(args) {
if(isDomReady) {
args.apply(document);
} else {
window.onload = args;
}
}
};
var isDomReady = (document.addEventListener || document.readyState == ("complete"|"loaded"|true|4) || document.onreadystatechange()) ? true : false;
$(document).ready(function() { alert("Wibbles!") });
我得到一個錯誤遺漏的類型錯誤:對象[對象全局]有沒有方法「準備好」
你不是通過'ready'返回'this'來鏈接方法。 – 2013-03-09 05:03:57
我知道你爲什麼會收到錯誤消息。 $(document)只是返回沒有.ready函數的HTMLDocument。如果$有一個「元素」屬性,它在運行構造函數時存儲了文檔元素,那麼您可以通過訪問ready函數中的存儲元素來檢查它的就緒狀態。 – MattDiamant 2013-03-09 05:04:19
@MattDiamant Ahh ......我想我會重讀幾次這篇評論供學習。大聲笑。但我想我明白了。謝謝。 – 2013-03-09 05:08:05