《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 相关文章推荐
一段效率很高的for循环语句使用方法
Aug 13 Javascript
Javascript select下拉框操作常用方法
Nov 09 Javascript
location对象的属性和方法应用(解析URL)
Apr 12 Javascript
JQuery分别取得每行最后一列和最后一行的示例代码
Aug 18 Javascript
Javascript的严格模式strict mode详细介绍
Jun 06 Javascript
jQuery防止重复绑定事件的解决方法
May 14 Javascript
JS多文件上传的实例代码
Jan 11 Javascript
JavaScript运动框架 多值运动(四)
May 18 Javascript
layui 选择列表,打勾,点击确定返回数据的例子
Sep 02 Javascript
javascript的delete运算符知识点总结
Nov 19 Javascript
使用Vue-scroller页面input框不能触发滑动的问题及解决方法
Aug 08 Javascript
Angular性能优化之第三方组件和懒加载技术
May 10 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
php mysql数据库操作分页类
2008/06/04 PHP
PHP中让curl支持sock5的代码实例
2015/01/21 PHP
ThinkPHP中数据操作案例分析
2015/09/27 PHP
详解WordPress中简码格式标签编写的基本方法
2015/12/22 PHP
thinkPHP简单导入和使用阿里云OSSsdk的方法
2017/03/15 PHP
PPK 谈 JavaScript 的 this 关键字 [翻译]
2009/09/29 Javascript
JavaScript中常见陷阱小结
2010/04/27 Javascript
左侧是表头的JS表格控件(自写,网上没有的)
2013/06/04 Javascript
js纯数字逐一停止显示效果的实现代码
2016/03/16 Javascript
省市二级联动小案例讲解
2016/07/24 Javascript
Bootstrap显示与隐藏简单实现代码
2017/03/06 Javascript
Angular入口组件(entry component)与声明式组件的区别详解
2018/04/09 Javascript
JS模拟实现哈希表及应用详解
2018/05/04 Javascript
vue2.0项目实现路由跳转的方法详解
2018/06/21 Javascript
使用node.js实现微信小程序实时聊天功能
2018/08/13 Javascript
Puppet的一些技巧
2018/09/17 Javascript
解决vue elementUI 使用el-select 时 change事件的触发问题
2020/11/17 Vue.js
python获取糗百图片代码实例
2013/12/18 Python
从零学python系列之从文件读取和保存数据
2014/05/23 Python
利用Python命令行传递实例化对象的方法
2016/11/02 Python
利用python画出折线图
2018/07/26 Python
python3.x提取中文的正则表达式示例代码
2019/07/23 Python
python实现各种插值法(数值分析)
2019/07/30 Python
python的sys.path模块路径添加方式
2020/03/09 Python
Python3 webservice接口测试代码详解
2020/06/23 Python
利用python汇总统计多张Excel
2020/09/22 Python
Python实现自动整理文件的脚本
2020/12/17 Python
Stylenanda中文站:韩国一线网络服装品牌
2016/12/22 全球购物
专注澳大利亚特产和新西兰特产的澳洲中文网:0061澳洲制造
2019/03/24 全球购物
阿姆斯特丹城市卡:Amsterdam Pass
2019/12/01 全球购物
高中生学习总结的自我评价范文
2013/10/13 职场文书
管理学专业个人求职信范文
2013/12/13 职场文书
煤矿安全生产月活动总结
2014/07/05 职场文书
远程培训的心得体会
2014/09/01 职场文书
丧事答谢词
2015/01/05 职场文书
实名检举信范文
2015/03/02 职场文书