jQuery 的设计思想

87 阅读1分钟

本篇文章是本人前几天学到了几个设计思想后, 对 jQuery 的重新认识

学到了简单且很好的写代码风格

在此与大家分享, 如有不对请指正, 本人万分感谢!!!

jQuery 的链式操作

  • 关于他的链式操作是最经典的
  • 他是如何实现的? 我们来看一下
  • function jQuery (selector){ return { api(){ retrun this } } }
  • 上面的代码只是简易的实现一个链式调用, jQuery('#test').api().api()
  • 是不是感觉 哎哟? 不错哦...

jQuery 的闭包

  • 闭包造成的影响是变量无法被回收(这是IE的问题)

  • 用闭包来隐藏一些细节, 比如:

  • function jQuery (selector){     let elements = document.querySelectorAll(selector)     return {         api(){           elements           retrun this         }     } }

  • api 里面就会用到 elements, 这样每次使用 elements是不一样的

  • 这就是隐藏了一些细节

重载

  • 我们的函数在接受参数的时候, 可能是字符串, 可能是选择器
  • 根据传参的不同进行不同的处理就是 重载

利用原型

  • 我们将公共的方法, 全都放在原型中
  • 这样会节省我们的内存

适配器

  • jQuery 会判断不同的浏览器, 然后用不同的代码

  • 我知道的是document.all

  • document.all 可以判断是否是 IE 

其他小细节

  • jQuery 还重新命名为$, 这叫做 别名

  • 他竟然没有使用 new 关键字

总结:

  1. 链式操作
  2. 闭包的活用
  3. 重载
  4. 利用原型
  5. 适配器
  6. 其他小细节, 竟然不用 new

这是本人学到的一些设计模式, 与大家在此分享一下, 谢谢大家的鼓励!!!

下面是本人仿造, 写的一个简单DOM库!!!

github.com/sunkuangdon…