《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 相关文章推荐
JavaScript使用cookie
Feb 02 Javascript
javascript iframe编程相关代码
Dec 28 Javascript
jquery查找tr td 示例模拟
May 08 Javascript
删除javascript中注释语句的正则表达式
Jun 11 Javascript
深入理解JavaScript系列(37):设计模式之享元模式详解
Mar 04 Javascript
JS日期加减,日期运算代码
Nov 05 Javascript
JavaScript 七大技巧(一)
Dec 13 Javascript
jquery对象访问是什么及使用方法介绍
May 03 Javascript
Javascript之Number对象介绍
Jun 07 Javascript
详解node HTTP请求客户端 - Request
May 05 Javascript
javascript事件循环event loop的简单模型解释与应用分析
Mar 14 Javascript
vue 插槽简介及使用示例
Nov 19 Vue.js
详解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
跟我学Laravel之请求(Request)的生命周期
2014/10/15 PHP
ThinkPHP处理Ajax返回的方法
2014/11/22 PHP
php版微信公众平台开发之验证步骤实例详解
2016/09/23 PHP
Laravel中错误与异常处理的用法示例
2018/09/16 PHP
php如何把表单内容提交到数据库
2019/07/08 PHP
php判断数组是否为空的实例方法
2020/05/10 PHP
IE6中使用position导致页面变形的解决方案(js代码)
2011/01/09 Javascript
jQuery插件MixItUp实现动画过滤和排序
2015/04/12 Javascript
JS+CSS实现仿支付宝菜单选中效果代码
2015/09/25 Javascript
AngularJS 实现JavaScript 动画效果详解
2016/09/08 Javascript
jQuery、layer实现弹出层的打开、关闭功能
2017/06/28 jQuery
nodejs接入阿里大鱼短信验证码的方法
2017/07/10 NodeJs
原生JS实现简单的倒计时功能示例
2018/08/30 Javascript
Javascript实现动态时钟效果
2018/11/17 Javascript
微信小程序城市选择及搜索功能的方法
2019/03/22 Javascript
Vue优化:常见会导致内存泄漏问题及优化详解
2020/08/04 Javascript
js禁止查看源文件屏蔽Ctrl+u/s、F12、右键等兼容IE火狐chrome
2020/10/01 Javascript
[02:53]DOTA2亚洲邀请赛 NewBee战队巡礼
2015/02/03 DOTA
[04:22]DOTA2大事件之护国神翼
2020/08/14 DOTA
Python实现变量数值交换及判断数组是否含有某个元素的方法
2017/09/18 Python
python3.4控制用户输入与输出的方法
2018/10/17 Python
python 统计一个列表当中的每一个元素出现了多少次的方法
2018/11/14 Python
详解Python with/as使用说明
2018/12/13 Python
python 实现在tkinter中动态显示label图片的方法
2019/06/13 Python
使用matlab或python将txt文件转为excel表格
2019/11/01 Python
面向新手解析python Beautiful Soup基本用法
2020/07/11 Python
python 中 .py文件 转 .pyd文件的操作
2021/03/04 Python
伦敦高达60%折扣的钻石珠宝商:Purely Diamonds
2018/06/24 全球购物
JAVA和C++的区别
2013/10/06 面试题
幼儿园毕业园长感言
2014/02/24 职场文书
毕业论文评语大全
2014/04/29 职场文书
活动总结报告怎么写
2014/07/03 职场文书
2014国庆节主题活动方案:快乐的国庆节
2014/09/16 职场文书
放假通知范文
2015/04/14 职场文书
小区环境卫生倡议书
2015/04/29 职场文书
python可视化之颜色映射详解
2021/09/15 Python