手记

jQuery源码面向对象理解

(function (window, undefined){
//window:即window,保存成局部变量,简化作用域链的查找
//undefined: 占位符,以免真正的undefined被外部的undefined改写
//构造函数jQuery,自执行返回了一个实例
var jQuery = function (){
return new jQuery.fn.init();//为何是jQuery.fn.init而不是jQuery?虽然效果都一样
}
//jQuery原型赋值,需要注意重新指回jQuery构造函数,不然应该是指到Object去了
jQuery.prototype = jQuery.fn = {
constructor: jQuery,
init: function (){
...
},
...
}
//把init的原型继承jQuery的原型
jQuery.fn.init.prototype = jQuery.prototype;
//闭包:把jQuery私有方法抛给window变为公有方法
window.jQuery = window.$ = jQuery;
})(window);

3人推荐
随时随地看视频
慕课网APP