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

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

阅读 5.3k
6 个回答

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

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

因为每个方法都return this

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题
宣传栏