最近在框架封装的课,了解到jQuery的实例化是返回JQuery原型的初始化函数(构造函数)实例化出来的实例,但为了jQuery实例可以访问到jQuery原型,所以改变init构造函数的原型指向jQuery原型,主要代码实现如下,其中用Jerry 代替jQuery。
(function(window, undefined) { //节省查找window对象的时间;压缩的时候参数是可以压缩的 //undefined在早期的浏览器中是可以重新赋值的,参数中添加undefined保证了undefined的值被固定,不会被重新赋值 //Jerry的角色(对象和普通函数) var Jerry = function(selector) { return new Jerry.fn.init(selector); }; //Jerry的原型对象 Jerry.fn = Jerry.prototype = { constructor : Jerry, init: function(selector) { },Jerry:'1.0'}; //改变init构造函数的原型指向 Jerry.fn.init.prototype = Jerry.fn; //向外部公开接口(实际上给window对象添加了两个属性$ 和 Jerry) window.$ = window.Jerry = Jerry; })(window);