jQuery的核心代码解析:
(function(window, undefined) {
function jQuery(selector){
return new jQuery.fn.init(selector)
}
jQuery.fn = jQuery.prototype = {
init: function () {
}
}
jQuery.fn.init.prototype = jQuery.fn;
window.jQuery = window.$ = jQuery;
})(window)
一.闭包结构传参window
1.闭包结构传入实参window,然后里面用形参接收
2.减少内部每次引用window的查询时间
3.方便压缩代码
二.形参undefined
1.因为ie低版本的浏览器可以给undefined赋值成功,所以为了保证undefined的纯洁给它一个形参的位置而没有实参,保证了它一定是undefined
三.jQuery传参selector
1.selector可以是一对标签,可以是id、类、后代、子代等等,可以是jQuery对象,
四.jQuery原型对象赋值
1.方便扩展jQuery的原型方法
五.return 实例化原型方法init
1.其实就是为了我们每次使用$不用new $();
2.为什么jQuery要new自己的原型方法呢,因为不new自己的就要new其他的函数返回,那干嘛不自己利用自己
六.jQuery原型对象赋值给jQuery原型方法init的原型
1.因为内部给jQuery原型每扩展一个方法init也会有该方法,是不是很酷炫,init有了那么$()出来的jQuery对象是不是也有啦
七.给window暴露可利用成员jQuery,$
1.给window暴露后那么全局都可以直接使用了jQuery和$了
2.至于为什么有$,因为短啊,当然你也可以每次jQuery()来使用
转载请注明来源网站:blog.ytso.com谢谢!
原创文章,作者:ItWorker,如若转载,请注明出处:https://blog.ytso.com/14949.html