jQuery对象æ¯ç±å
¶prototypeçinitæé å¨è¿è¡æé å®ä¾ï¼ä¸prototypeæ å
³ï¼å¯ä»¥æ½ç¦»åºæ¥ã
// ææ°çæ¬2.1.4
// 73è¡å®ä¹äºjQueryæé å½æ°
// Define a local copy of jQuery
jQuery = function( selector, context ) {
// The jQuery object is actually just the init constructor 'enhanced'
// Need init if jQuery is called (just allow error to be thrown if not included)
// 76è¡ jQuery对象éè¿prototypeä¸çinitæ¹æ³è¿è¡æé 并è¿åå®ä¾
return new jQuery.fn.init( selector, context );
},
// 92è¡ ä»£ç åè¯æ们 jQuery.fn å jQuery.prototype æ¯æååä¸å¯¹è±¡ï¼ä¹å°±æ¯è¯´fnæ¯prototypeçç®å
jQuery.fn = jQuery.prototype = {
// The current version of jQuery being used
jquery: version,
// 96è¡ä¿®æ£constructorå±æ§æåjQueryãåæ¶jQuery对象è½ç¶æ¯ç¨jQuery.fn.initæ¹æ³æé ï¼ä½constructorä¾ç¶ä¿®æ£æåäºjQueryï¼é为jQuery.fn.initï¼çä¸æ¹ä»£ç
constructor: jQuery,
// 2735è¡ å®ä¹äºjQuery.fn.initæé å½æ°
init = jQuery.fn.init = function( selector, context ) {
// 2835è¡ ä½¿å¾jQuery.fn.initæé å½æ°çåååjQueryåååæ¶æåäºåä¸ä¸ªå¯¹è±¡
// Give the init function the jQuery prototype for later instantiation
init.prototype = jQuery.fn;
// 9202è¡ è$ä»
ä»
åªæ¯jQuery对象çä¸ä¸ªå«å,è·æ newæé æ å
³
window.jQuery = window.$ = jQuery;
大æ¦ç代ç ç»æå°±æ¯è¿æ ·åã
jQueryä»
ä»
为äºå®ç°æ newæé ï¼å¨å
¶ååä¸å建äºinitæ¹æ³(ä»
å
å½æé å¨)为å
¶æé å®ä¾å¯¹è±¡ï¼initæ¹æ³çåååjQueryååæåäºåä¸ä¸ªå¯¹è±¡ï¼å½ç¶å°±æäºå¾ªç¯å¼ç¨ï¼ï¼ä¸ºåç»çå®ä¾æ¹æ³åå®ä¾æ件æºå¶æä¸åºç¡(å¦æä¸æååä¸å¯¹è±¡åå®ä¾æ件å°ä¼åºç°$.fn.init.fn.xxxxxè¿ä¸å¹)ï¼å¹¶ä¿®æ£constructorçæåï¼ä½¿å¾çèµ·æ¥åæ¯ç±jQueryæé å¨æé ã
$åªæ¯jQuery对象çå«åï¼ $ === jQuery æ¯æç«çï¼å¹¶ä¸å 为使ç¨newæä½ç¬¦çæ¶å ( new jQuery() ) å jQuery() ç reutrn å¼ä¼è¦çnewæä½ç¬¦çæçå®ä¾ï¼æ以 jQuery() å new jQuery () çç»æä¹æ¯ä¸æ ·çã
èé¢ä¸»ç¤ºä¾æ¯
1ã $æ¯å®ç°jQueryæ newæé çæ¹æ³
2ã $ !== jQuery
3ã jQuery() å new jQueryçç»ææ¯ä¸åç
温馨提示:答案为网友推荐,仅供参考