jQuery如何让其构造函数同时接受参数并充当函数的角色?
我对JavaScript还比较新,如果这是一个初级问题就抱歉了(我已经查看了源代码,但很难分析)。
无论如何,以$(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!") });
我遇到了一个错误:Uncaught TypeError: Object[object global] has no method 'ready'。
ready
中返回this
来链接方法。 - Jared Farrish