js实现类似于add(1)(2)(3)调用方式的方法


Posted in Javascript onMarch 04, 2015
var add = function(a){

    return function(b){

        return function(c){

            return a+b+c;

        };

    };

};

add(1)(2)(3); //6

没错!那要是add(1)(2)(3)(4) 这样4个调用呢,那这个肯定不适用了。

这种就是类似于执行一个函数返回函数自身值:

function add(x) {

    var sum = x;

    var tmp = function (y) {

        sum = sum + y;

        return tmp;

    };

    tmp.toString = function () {

        return sum;

    };

    return tmp;

}

console.log(add(1)(2)(3));  //6

console.log(add(1)(2)(3)(4));   //10

但是在计算完成后还是返回了tmp这个函数,这样就获取不到计算的结果了,我们需要的结果是一个计算的数字那么怎么办呢,首先要知道JavaScript中,打印和相加计算,会分别调用toString或valueOf函数,所以我们重写tmp的toString和valueOf方法,返回sum的值;

以上就是本文的全部内容了,希望大家能够喜欢。

Javascript 相关文章推荐
JavaScript中数组对象的那些自带方法介绍
Mar 12 Javascript
javascript获取鼠标位置部分的实例代码(兼容IE,FF)
Aug 05 Javascript
js隐式全局变量造成的bug示例代码
Apr 22 Javascript
jquery.mobile 共同布局遇到的问题小结
Feb 10 Javascript
基于RequireJS和JQuery的模块化编程日常问题解析
Apr 14 Javascript
JQuery实现DIV其他动画效果的简单实例
Sep 18 Javascript
jQuery验证表单格式的使用方法
Jan 10 Javascript
Vue.js 利用v-for中的index值实现隔行变色
Aug 01 Javascript
JS实现求5的阶乘示例
Jan 21 Javascript
Vue3.x源码调试的实现方法
Oct 13 Javascript
如何正确理解vue中的key详解
Nov 02 Javascript
使用vue实现HTML页面生成图片的方法
Mar 12 Javascript
jquery 插件实现多行文本框[textarea]自动高度
Mar 04 #Javascript
JavaScript常用脚本汇总(三)
Mar 04 #Javascript
JavaScript常用脚本汇总(二)
Mar 04 #Javascript
JS实现可缩放、拖动、关闭和最小化的浮动窗口完整实例
Mar 04 #Javascript
JavaScript常用脚本汇总(一)
Mar 04 #Javascript
JS+CSS实现Div弹出窗口同时背景变暗的方法
Mar 04 #Javascript
js实现iGoogleDivDrag模块拖动层拖动特效的方法
Mar 04 #Javascript
You might like
php的list()的一步操作给一组变量进行赋值的使用
2011/05/18 PHP
ThinkPHP3.1新特性之对页面压缩输出的支持
2014/06/19 PHP
UPUPW 更新 64 位 Apache 系列 PHP 7.0 正式版
2015/12/08 PHP
初学prototype,发个JS接受URL参数的代码
2006/09/25 Javascript
JavaScript 节点操作 以及DOMDocument属性和方法
2007/12/06 Javascript
ext for eclipse插件安装方法
2008/04/27 Javascript
Jsonp 跨域的原理以及Jquery的解决方案
2011/06/27 Javascript
JSON为什么那样红为什么要用json(另有洞天)
2012/12/26 Javascript
onkeydown事件解决按回车键直接提交数据的需求
2013/04/11 Javascript
JS获取select-option-text_value的方法
2013/12/26 Javascript
jQuery中die()方法用法实例
2015/01/19 Javascript
JavaScript获取网页中第一个链接ID的方法
2015/04/03 Javascript
浅谈JavaScript中的对象及Promise对象的实现
2015/11/15 Javascript
canvas时钟效果
2017/02/16 Javascript
VUE实现日历组件功能
2017/03/13 Javascript
详解为生产环境编译Angular2应用的方法
2018/12/10 Javascript
JQuery获取元素尺寸、位置及页面滚动事件应用示例
2019/05/14 jQuery
vue vantUI tab切换时 list组件不触发load事件的问题及解决方法
2020/02/14 Javascript
Python一行代码实现快速排序的方法
2019/04/30 Python
python写日志文件操作类与应用示例
2019/07/01 Python
CSS3 @font-face属性使用指南
2014/12/12 HTML / CSS
html5 touch事件实现触屏页面上下滑动(二)
2016/03/10 HTML / CSS
意大利团购网站:Groupon意大利
2016/10/11 全球购物
New Balance英国官方网站:始于1906年,百年慢跑品牌
2016/12/07 全球购物
YSL圣罗兰美妆英国官网:Yves Saint Laurent Beauty UK
2019/08/03 全球购物
全国税务系统先进集体事迹材料
2014/05/19 职场文书
个人股份转让协议书范本
2014/10/26 职场文书
2014学生会工作总结报告
2014/12/02 职场文书
辩护词范文大全
2015/05/21 职场文书
2015年教务工作总结
2015/05/23 职场文书
工作感想范文
2015/08/07 职场文书
大学新生入学感想
2015/08/07 职场文书
学习委员竞选稿
2015/11/20 职场文书
2016七夕情人节广告语
2016/01/28 职场文书
MySQL系列之七 MySQL存储引擎
2021/07/02 MySQL
淡雅古典唯美少女娇媚宁静迷人写真
2022/03/21 杂记