《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插件ajaxfileupload.js实现ajax上传文件例子
Jun 26 Javascript
JS循环遍历JSON数据的方法
Jul 08 Javascript
jQuery后代选择器用法实例
Dec 23 Javascript
jquery.form.js框架实现文件上传功能案例解析(springmvc)
May 26 Javascript
深入理解JavaScript单体内置对象
Jun 06 Javascript
javascript中获取元素标签中间的内容的实现方法
Oct 08 Javascript
jquery对所有input type=text的控件赋值实现方法
Dec 02 Javascript
react-native动态切换tab组件的方法
Jul 07 Javascript
详解关于Angular4 ng-zorro使用过程中遇到的问题
Dec 05 Javascript
百度小程序之间的页面通信过程详解
Jul 18 Javascript
layui对工具条进行选择性的显示方法
Sep 19 Javascript
js实现随机圆与矩形功能
Oct 29 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
UTF8编码内的繁简转换的PHP类
2009/07/09 PHP
PHP 裁剪图片成固定大小代码方法
2009/09/09 PHP
header跳转和include包含问题详解
2012/09/08 PHP
解析web文件操作常见安全漏洞(目录、文件名检测漏洞)
2013/06/29 PHP
ThinkPHP框架获取最后一次执行SQL语句及变量调试简单操作示例
2018/06/13 PHP
centos7上编译安装php7以php-fpm方式连接apache
2018/11/08 PHP
PHP Ajax跨域问题解决方案代码实例
2020/08/01 PHP
JavaScript 继承详解(四)
2009/07/13 Javascript
基于MooTools的很有创意的滚动条时钟动画
2010/11/14 Javascript
关于 文本框默认值 的操作js代码
2012/01/12 Javascript
关于图片的预加载过程中隐藏未知的
2012/12/19 Javascript
jquery实现鼠标拖拽滑动效果来选择数字的方法
2015/05/04 Javascript
js实现带有介绍的Select列表菜单实例
2015/08/18 Javascript
全面解析Bootstrap表单使用方法(表单按钮)
2015/11/24 Javascript
AngularJS使用指令增强标准表单元素功能
2016/07/01 Javascript
Angular中管道操作符(|)的使用方法
2017/12/15 Javascript
node实现登录图片验证码的示例代码
2018/04/20 Javascript
学习React中ref的两个demo示例
2018/08/14 Javascript
Vue中使用create-keyframe-animation与动画钩子完成复杂动画
2019/04/09 Javascript
jQuery操作选中select下拉框的值代码实例
2020/02/07 jQuery
原生JavaScript实现留言板
2021/01/10 Javascript
Python使用tablib生成excel文件的简单实现方法
2016/03/16 Python
python3+PyQt5实现自定义窗口部件Counters
2018/04/20 Python
Python 从一个文件中调用另一个文件的类方法
2019/01/10 Python
Python从文件中读取数据的方法讲解
2019/02/14 Python
使用css3背景渐变中的透明度来设置不同颜色的背景渐变
2014/03/31 HTML / CSS
CSS3 animation ? steps 函数详解
2019/08/30 HTML / CSS
优秀部门获奖感言
2014/02/14 职场文书
主管会计岗位职责
2014/03/13 职场文书
临床医师个人自我评价
2014/04/06 职场文书
社会治安综合治理管理责任书
2014/04/16 职场文书
设计师求职信
2014/07/01 职场文书
行政求职信
2014/07/04 职场文书
幼儿园小班班务总结
2015/08/03 职场文书
个人售房合同协议书
2016/03/21 职场文书
Win11怎样将锁屏账户头像图片改成动画视频
2021/11/21 数码科技