zoukankan      html  css  js  c++  java
  • jQuery2.1.1源码分析一

    用了2周,把jquery2.1.1版本的源码读了一遍,像得了感冒,头疼、恶心、没精神。。。

    涉及javaScript基本知识点:

          工厂模式、闭包、正则表达式、引用类型(function、regExp、string、array)、块级作用域、

          DOM API、原型、数据基本类型、操作符(尤其布尔操作符)、函数(尤其是重载)

         边看源码边读JavaScript高级程序设计,发现自己的基础又忘记差不多了。。

    涉及标准或设计模式:

        Promise/A、HTML4.01 HTML5、Selectors API Level 1、Selectors Level3

    涉及开源项目:

        Sizzle JavaScript Selector Library

    涉及模块化编程

        CommonJs、AMD、CMD

    整体上来看,外层为一个自调用匿名函数(function(xx,xx){...}(xx,xx));内层为工厂模式,而jQuery多个模块也使用了工厂模式进行封装

    关于jQuery模块,主要包括以下几个模块

          核心(init、extend)、Data、Callbacks、Deferred、Ajax、事件、Animation、Sizzle

    jQuery充分利用了javaScript松散的语言特性。例如,Callbacks模块中,stack = !option.once && [],这个stack可能是布尔值或数组,

    在fire方法中,根据其数据类型不同,进行不同的操作。

    但是,各位大神所说的精妙只在读个别代码时,有所感觉。

    总体来说,对jquery源码理解还不够深入,对各位大神说的抽象思维真真是没做到。

    接下来,根据jquery书籍和网上资料,不断的去细读、精读源码,达到第一个小目标。

    第二遍感受

    js基础知识运用灵活,小技巧特别多;

    浏览器兼容性问题,集中解决,只是在某些模块零散分布;

    抽象思维非常强,逻辑严谨,少量代码,实现大量功能;

    目前使用jQuery解决业务的水平,处于及格水平,看了源码,认为jQuery提供了很多其他的更高级、更优雅得解决业务问题的思路和方法;

    梳理了知识结构,扩充技术知识面(正则表达式、ES5API、XSS),深入底层技术;

    jquery源码分析笔记和示例地址https://github.com/respectable2007/jquery-source-code-explanation

  • 相关阅读:
    代理模式
    组合模式
    yum配置文件详解
    责任链模式
    git看不到别人创建的远程分支
    学习gulpfile.babel.js随笔
    遍历数组的方法
    解决Error: ENOENT: no such file or directory, scandir 安装node-sass报错
    window对象
    Moment.js的一些用法
  • 原文地址:https://www.cnblogs.com/respect2017/p/9828735.html
Copyright © 2011-2022 走看看