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

 更新时间:2020年04月07日 11:53:52   作者:silentime  
这篇文章主要介绍了Javascript面向对象程序设计链式调用,结合实例形式分析了《javascript设计模式》中链式调用的原理与简单使用技巧,需要的朋友可以参考下

本文实例讲述了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);

}

})();

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

附:一个简单链式调用示例:

/*
map()
items 遍历的数组的每一项
​
*/
var arr = [1,2,3];
var num = arr.map(function(items){
  return items + 1;
});
console.log(num);//[2,3,4 var arr = [1,2,3];
    var num = arr.map(function (items) {
      return items+1;
    }).reduce(function (a,b) {//[2,3,4].reduce()
      return a+b;
    })
​
    console.log(num);//0 --- 2+3+4 = 9]
​
/* 
  reduce 实现数组里的每个数相加,也就是给数组的每一项求总和
  reduce(function(a,b){
    return a+b;
  },a)--a的初始值
*/
var arr = [1,2,3];
var num_1 = arr.reduce(function (a,b) {
  return a+b;
})
console.log(num_1);//6
​
/* 
  链式调用 
  一个链子接一个链子  
*/
var arr = [1,2,3];
var num = arr.map(function (items) {
  return items+1;
}).reduce(function (a,b) {//[2,3,4].reduce()
  return a+b;
})
​
console.log(num);//0 --- 2+3+4 = 9

感兴趣的朋友可以使用在线HTML/CSS/JavaScript代码运行工具http://tools.jb51.net/code/HtmlJsRun测试上述代码运行效果。

更多关于JavaScript相关内容感兴趣的读者可查看本站专题:《javascript面向对象入门教程》、《JavaScript错误与调试技巧总结》、《JavaScript数据结构与算法技巧总结》、《JavaScript遍历算法与技巧总结》及《JavaScript数学运算用法总结

希望本文所述对大家JavaScript程序设计有所帮助。

相关文章

  • Javascript 同时提交多个Web表单的方法

    Javascript 同时提交多个Web表单的方法

    1 问题来自一位网友的提问: web页面里有多个表单,每个表单对应着某一类数据操作。
    2009-02-02
  • JavaScript canvas实现镜像图片效果

    JavaScript canvas实现镜像图片效果

    这篇文章主要为大家详细介绍了JavaScript canvas实现镜像图片效果,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2021-08-08
  • 微信小程序实现默认第一个选中变色效果

    微信小程序实现默认第一个选中变色效果

    这篇文章主要介绍了微信小程序实现默认第一个选中变色效果,本文通过实例代码给大家介绍的非常详细,具有一定的参考借鉴价值,需要的朋友可以参考下
    2018-07-07
  • 浅析JavaScript中的变量提升

    浅析JavaScript中的变量提升

    这篇文章主要介绍了浅析JavaScript中的变量提升,文章围绕主题展开详细的内容介绍,具有一定的参考价值,需要的小伙伴可以参考一下
    2022-06-06
  • JS利用window.print()实现网页打印功能

    JS利用window.print()实现网页打印功能

    print作为浏览已经比较成熟的技术可以经常被用来打印页面的部分内容。本文将在JS中调用window.print()方法实现网页打印功能,感兴趣的可以跟随小编一起学习一下
    2022-04-04
  • JavaScript实现Base64编码转换

    JavaScript实现Base64编码转换

    这篇文章主要介绍了JavaScript实现Base64编码转换的相关资料,非常简单实用,需要的朋友可以参考下
    2016-04-04
  • 小程序自定义轮播图圆点组件

    小程序自定义轮播图圆点组件

    这篇文章主要为大家详细介绍了小程序自定义轮播图圆点组件,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2022-06-06
  • HTML+JS实现猜拳游戏的示例代码

    HTML+JS实现猜拳游戏的示例代码

    这篇文章主要为大家详细介绍了如何利用HTML+CSS+JS编写一个猜拳游戏,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2022-04-04
  • 原生JS实现隐藏显示图片 JS实现点击切换图片效果

    原生JS实现隐藏显示图片 JS实现点击切换图片效果

    这篇文章主要为大家详细介绍了原生JS实现隐藏显示图片,JS实现点击切换图片效果,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2017-07-07
  • JS异步文件上传(兼容IE8+)

    JS异步文件上传(兼容IE8+)

    本文主要介绍了JS实现异步文件上传的相关资料,具有很好的参考价值。下面跟着小编一起来看下吧
    2017-04-04

最新评论