《javascript设计模式》学习笔记四:Javascript面向对象程序设计链式调用实例分析


Posted in Javascript onApril 07, 2020

本文实例讲述了Javascript面向对象程序设计链式调用。分享给大家供大家参考,具体如下:

1.链式调用:

jquery可能是目前大家最常用到的js框架了,也习惯了如下的调用方式:

$('.someclass').show().css('xxx','xxxx').click(function(){}).xxx……

这种调用方式就叫做链式调用,也就是说在调用一个方法之后,可以使用方法的返回值来继续进行方法调用。

2.如何实现链式调用:

了解了什么是链式调用,我们再来看如何实现链式调用,从1中所述我们应该知道链式调用的关键在于方法的返回值,只要方法的返回值都是调用该方法的对象,那么,我们就可以实现链式调用了,我们仿照jquery,使用$作为对象的选择器:

(function(){

 function _$(els){

this.elements = [];

for(var i=0, len=els.length;i<len;i++){

 var elements = els[i];

 if(typeof element = ‘string'){

  element = document.getElementByIdx_x_x(element);

}

}

this.elements.push(element);

}

_$.prototype = {

 each:function(fn){

  for(var i=0,len=this.elements.length;i<len;i++){

   fn.call(this, this.elements[i]);

}

return this;

},

setStyle: function(prop, val){

……

},

show:function(){

……

},

……

}

window.$ = function(){

 return new _$(arguments);

}

})();

上面的代码就实现了一个简单的链式调用对象,并且使用一个_$作为$的别名,以防止$被其他代码改写而导致整个对象的定义丢失。

Javascript 相关文章推荐
jQuery EasyUI API 中文文档 - ComboGrid 组合表格
Oct 13 Javascript
利用JS延迟加载百度分享代码,提高网页速度
Jul 01 Javascript
Jquery中request和request.form和request.querystring的区别
Nov 26 Javascript
Bootstrap CSS使用方法
Dec 23 Javascript
原生js封装自定义滚动条
Mar 24 Javascript
简单实现jQuery弹窗效果
Oct 30 jQuery
VueJs监听window.resize方法示例
Jan 17 Javascript
vue弹窗消息组件的使用方法
Sep 24 Javascript
JS获取子节点、父节点和兄弟节点的方法实例总结
Jul 06 Javascript
layui获取多选框中的值方法
Aug 15 Javascript
js获取本日、本周、本月的时间代码
Feb 01 Javascript
Vue 请求传公共参数的操作
Jul 31 Javascript
详解vue中在循环中使用@mouseenter 和 @mouseleave事件闪烁问题解决方法
Apr 07 #Javascript
《javascript设计模式》学习笔记三:Javascript面向对象程序设计单例模式原理与实现方法分析
Apr 07 #Javascript
flexible.js实现移动端rem适配方案
Apr 07 #Javascript
《javascript设计模式》学习笔记一:Javascript面向对象程序设计对象成员的定义分析
Apr 07 #Javascript
详解vue-flickity的fullScreen功能实现
Apr 07 #Javascript
小谈angular ng deploy的实现
Apr 07 #Javascript
简单了解Vue + ElementUI后台管理模板
Apr 07 #Javascript
You might like
FleaPHP的安全设置方法
2008/09/15 PHP
让PHP开发者事半功倍的十大技巧小结
2010/04/20 PHP
使用php+Ajax实现唯一校验实现代码[简单应用]
2011/11/29 PHP
解析PHP留言本模块主要功能的函数说明(代码可实现)
2013/06/25 PHP
PHP中strlen()和mb_strlen()的区别浅析
2014/06/19 PHP
php模拟post提交数据的方法
2015/02/12 PHP
Linux操作系统安装LAMP环境
2015/06/26 PHP
帝国cms常用标签汇总
2015/07/06 PHP
WordPress主题制作之模板文件的引入方法
2015/12/28 PHP
php自定义函数实现统计中文字符串长度的方法小结
2017/04/15 PHP
javascript 对象比较实现代码
2009/04/27 Javascript
JS下高效拼装字符串的几种方法比较与测试代码
2010/04/15 Javascript
JS图像无缝滚动脚本非常好用
2014/02/10 Javascript
JavaScript获取图片的原始尺寸以宽度为例
2014/05/04 Javascript
Javascript基础知识(二)事件
2014/09/29 Javascript
jQuery基础知识小结
2014/12/22 Javascript
jQuery实现列表的增加和删除功能
2018/06/14 jQuery
微信小程序适配iphoneX的实现方法
2018/09/18 Javascript
使用Python操作Elasticsearch数据索引的教程
2015/04/08 Python
Python中协程用法代码详解
2018/02/10 Python
python定向爬虫校园论坛帖子信息
2018/07/23 Python
python manage.py runserver流程解析
2019/11/08 Python
python基于celery实现异步任务周期任务定时任务
2019/12/30 Python
Python检测端口IP字符串是否合法
2020/06/05 Python
25个CSS3动画按钮和菜单教程分享
2012/10/03 HTML / CSS
深入解析HTML5的IndexedDB索引数据库
2015/09/14 HTML / CSS
娇韵诗俄罗斯官方网站:Clarins俄罗斯
2020/10/03 全球购物
新三好学生主要事迹
2014/01/23 职场文书
绩效管理实施方案
2014/03/19 职场文书
幼儿园大班评语大全
2014/04/17 职场文书
机电系毕业生求职信
2014/07/11 职场文书
班子查摆四风个人对照检查材料思想汇报
2014/10/04 职场文书
商务考察邀请函模板
2015/02/02 职场文书
JavaScript 对象创建的3种方法
2021/11/17 Javascript
windows11怎么查看自己安装的版本号? win11版本号的查看方法
2021/11/21 数码科技
SQLServer常见数学函数梳理总结
2022/08/05 MySQL