1.实现变量私有化--->使用立即执行函数实现
2. 把变量暴露到全局 ---> 利用对象,把变量添加到window的属性,使用window[prop]
为了能够使用$ 和 jQuery ----> window.jQuery = window.$ = jQuery;
3. 不需要 new 构造函数
① 返回一个构造函数
② 将函数定义在jQuery的原型上
③ 入口函数init的原型指向jQuery的原型,实现链式调用 $.fn.init.prototype = $.prototype;
var jQuery = function(){
return new jQuery.prototype.init();
}
window.$ = window.jQuery = jQuery;
$.fn = $.prototype = {
init : function(){
this[0] = document.getElementByClassName('box')[0];
length = 1;
return this;
},
css : function (){
console.log('css')
},
html : function (){
console.log('html');
return this;
}
}
4. 实现链式调用
原型上的每个构造函数都return this;