jQuery架构

jQuery兼容很多浏览器,能够方便使用JS动画和各种交互。jQuery的源码结构如下:

;(function(global,factory){
    factory(global);
}(typeof window!=="undefined"?window:this,function(window,noGlobal){
      var jQuery = function(selector, context){
          return new jQuery.fn.init(selector,context);
      };
      jQuery.fn = jQuery.prototype = {};
      //核心方法
      //回调系统
      //异步队列
      //数据缓存
      //队列操作
      //选择器
      //属性操作
      //节点遍历
      //文档处理
      //样式操作
      //属性操作
      //事件体系
      //AJAX交互
      //动画引擎
      return jQuery;
}));

jQuery中有多个模块,模块之间互相依赖

自执行匿名函数(jQuery的源码中有很多这样的函数)

(function(window, factory){
      factory(window)
}(this,function(){
      return function(){
          //jQuery的调用
      }
}))

匿名函数可以防止全局变量的污染,小括号实现立即初始化,就就是单例模式执行一次,换一种写法如下:

(function(window, undefined){
      var jQuery = function(){}
      //...
      window.jQuery = window.$ = jQuery;
})(window);

上述代码中参数的作用:
1.window为了防止需要window时多次在作用域链上去查找window,这样将window传入函数内可以很快找到window;
2.在一些浏览器中undefined可以被改写,因为它不是关键字。

jQuery中的类数组对象
jQuery的入口都是统一的$,通过传递不同参数实现9中方法的重载:
1.jQuery([selector,[context]])
2.jQuery(element)
3.jQuery(elementArray)
4.jQuery(object)
5.jQuery(jQuery object)
6.jQuery(html,[ownerDocument])
7.jQuery(html,[attributes])
8.jQuery()
9.jQuery(callback)
jQuery对象通过对象键值对保存属性,原型保存方法

****jQuery对象转成DOM对象可以通过加下标或用.get()
$('#div')[0] $('#div').get(0)****

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • jQuery是我们大家都很熟悉的操作dom框架,接下来让我带着大家一步步解析jquery,虽然我这是一步步的来。不...
    yi蜀黍阅读 3,398评论 0 3
  • 1.JQuery 基础 改变web开发人员创造搞交互性界面的方式。设计者无需花费时间纠缠JS复杂的高级特性。 1....
    LaBaby_阅读 4,918评论 0 1
  • 在线阅读 http://interview.poetries.top[http://interview.poetr...
    前端进阶之旅阅读 115,194评论 24 450
  • 伪装浏览器,我们要知道http,get,post,基本上这三个就够,以为暂时也没用什么高级功能。再装个fiddle...
    wyude阅读 4,375评论 0 0
  • 姓名:李淑瑛 224期学员 289期志工 公司:绍兴翔鹰纺织品有限公司 部门:人事行政部 【坚持日精进打卡第191...
    李淑瑛阅读 1,463评论 0 0

友情链接更多精彩内容