我只能说想法很好,设计的巧妙。看代码:
1 var jQuery = function( selector, context ) { 2 //执行了init函数并返回jQuery实例 3 return new jQuery.fn.init( selector, context, rootjQuery ); 4 }; 5 6 jQuery.fn = jQuery.prototype = { 7 constructor: jQuery, //重新把constructor指向Jquery,因为定义prototype的时候把constructor覆盖了 8 init: function( selector, context, rootjQuery ) { 9 ..... 10 }, 11 selector: "", 12 jquery: "1.8.3", 13 length: 0, 14 size: function() { 15 ...... 16 }, 17 ...... 18 .... 19 }; 20 21 //把jQuery的原型链赋给jQuery.fn.init上的原型 22 jQuery.fn.init.prototype = jQuery.fn;