首页
学习
活动
专区
圈层
工具
发布
社区首页 >专栏 >链式调用this

链式调用this

作者头像
wade
发布2020-04-24 17:17:22
发布2020-04-24 17:17:22
1.3K0
举报
文章被收录于专栏:coding个人笔记coding个人笔记

jQuery在JavaScript库中的一哥地位是不可撼动的,虽然随着这几年框架的崛起和一些大平台移除了jQuery的依赖,但不可否认jQuery还是前端开发必须掌握的技能。

jQuery的好处很多很多,其中链式调用是其中之一。网上很多说jQuery的链式调用是返回this对象,其实原理是这样的,只不过jQuery会更复杂。

jQuery自动缓存每一步的jQuery操作,返回的都是一个jQuery对象:

代码语言:javascript
复制
$('div').find('ul li').eq(2).html('第三个');
console.log($('div'));
console.log($('div').find('ul li'));
console.log( $('div').find('ul li').eq(2));

jQuery采用了缓存和返回jQuery对象,在效率上会比非链式的更高,在调用上也更简便。

我们可以实现最简单的this返回的链式调用:

代码语言:javascript
复制
function Fn() { 
 this.get = function () { 
   console.log('get'); 
   return this; 
 } 
 this.post = function () { 
   console.log('post'); 
    return this; 
 }
}
Fn.prototype.delete = function () { 
  console.log('delete');
return this;
}
var fn = new Fn();
fn.get().post().delete();

这是构造函数和实例对象的链式调用,还有更简单的:

代码语言:javascript
复制
var fn = { 
 get: function () { 
   console.log('get'); 
   return this; 
 }, 
 post: function () { 
    console.log('post'); 
   return this; 
 }, 
 delete: function () { 
   console.log('delete'); 
   return this; 
 }
}
fn.get().post().delete();

方法函数可以这么去实现链式调用,至于jQuery怎么保存每一次的dom节点返回jQuery对象,暂时没有能力去研究。

(完)

本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2019-04-10,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 coding个人笔记 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档