《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 相关文章推荐
从新浪弄下来的全屏广告代码 与使用说明
Mar 15 Javascript
文字溢出实现溢出的部分再放入一个新生成的div中具体代码
May 17 Javascript
jQuery中offsetParent()方法用法实例
Jan 19 Javascript
jQuery validate+artdialog+jquery form实现弹出表单思路详解
Apr 18 Javascript
JavaScript中的对象继承关系
Aug 01 Javascript
Js遍历键值对形式对象或Map形式的方法
Aug 08 Javascript
node.js路径处理方法以及绝对路径详解
Mar 04 Javascript
详解jQuery中关于Ajax的几个常用的函数
Jul 17 jQuery
详解vue-cli 接口代理配置
Dec 13 Javascript
Node.js log4js日志管理详解
Jul 31 Javascript
vue中动态添加class类名的方法
Sep 05 Javascript
JS函数内部属性之arguments和this实例解析
Oct 07 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
德生S2000收音机更换“钕铁硼”全频扬声器
2021/03/02 无线电
Yii统计不同类型邮箱数量的方法
2016/10/18 PHP
深入理解Yii2.0乐观锁与悲观锁的原理与使用
2017/07/26 PHP
从JavaScript的函数重名看其初始化方式
2007/03/08 Javascript
JS动态添加option和删除option(附实例代码)
2013/04/01 Javascript
js对table的td进行相同内容合并示例详解
2013/12/27 Javascript
JavaScript中this详解
2015/09/01 Javascript
极易被忽视的javascript面试题七问七答
2016/02/15 Javascript
JS获取IE版本号与HTML设置IE文档模式的方法
2016/10/09 Javascript
关于Vue.js 2.0的Vuex 2.0 你需要更新的知识库
2016/11/30 Javascript
JavaScript内存泄漏的处理方式
2017/11/20 Javascript
bootstrap select下拉搜索插件使用方法详解
2017/11/23 Javascript
react配置antd按需加载的使用
2019/02/11 Javascript
详解微信小程序之一键复制到剪切板
2019/04/24 Javascript
js的新生代垃圾回收知识点总结
2019/08/22 Javascript
vue和小程序项目中使用iconfont的方法
2020/05/19 Javascript
使用JavaScript获取扫码枪扫描得到的条形码的思路代码详解
2020/06/10 Javascript
小程序组件传值和引入sass的方法(使用vant Weapp组件库)
2020/11/24 Javascript
Python去掉字符串中空格的方法
2014/03/11 Python
Python实现自动上京东抢手机
2018/02/06 Python
python实现自动登录后台管理系统
2018/10/18 Python
Python这样操作能存储100多万行的xlsx文件
2019/04/16 Python
Python程序包的构建和发布过程示例详解
2019/06/09 Python
python创建学生管理系统
2019/11/22 Python
CSS3圆角边框和边界图片效果实例
2016/07/01 HTML / CSS
详解移动端html5页面长按实现高亮全选文本内容的兼容解决方案
2016/12/03 HTML / CSS
黄河的主人教学反思
2014/02/07 职场文书
说明书范文
2014/05/07 职场文书
家长会欢迎标语
2014/06/24 职场文书
公共场所禁烟倡议书
2014/08/30 职场文书
人生遥控器观后感
2015/06/11 职场文书
结婚十年感言
2015/07/31 职场文书
被委托人身份证明
2015/08/07 职场文书
《只有一个地球》教学反思
2016/02/16 职场文书
有关信念的名言语录集锦
2019/12/06 职场文书
python实现简单的聊天小程序
2021/07/07 Python