jq是如何做到可以多次调用某方法的

XZIO
  • 76

RT,例如 $('xxx').find('xxx').find('xxx').find('xxx')...
最好能贴个精简版的DOME研究几番

回复
阅读 3.3k
6 个回答
✓ 已被采纳

方法执行完再返回jQuery就行了,这个叫jQuery的链式操作。
优点有一下:
代码更精简。链式操作能大大精简代码量,多项操作一行代码一气呵成,搞定;
优化性能。使用链式操作,所有操作代码共享一个jQuery对象,省去了逐步查询DOM元素的性能损耗。

这个可以叫链式操作或者链式调用,我觉得要看的话可以先看看函数式编程的相关介绍,比如阮大比较新的函数式编程入门教程;另外如果看写法的话,个人觉得从Underscore库切入会比较好。jQuery库更擅长的是抹平不同环境的兼容性差异、提供一致化的调用接口,所以代码里会有很多关于这方面的写法;而Underscore库则封装了很多各自独立的实用小方法,而且网上也有很多全文件注释(因为这个库真的挺小的……),比如实现自封装等等(这个源码解读也挺好的,推荐)。

因为每个方法都return this

你知道吗?

宣传栏