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 相关文章推荐
url参数中有+、空格、=、%、&、#等特殊符号的问题解决
May 15 Javascript
js动态切换图片的方法
Jan 20 Javascript
JS+CSS实现Li列表隔行换色效果的方法
Feb 16 Javascript
完美JQuery图片切换效果的简单实现
Jul 21 Javascript
javascript 中iframe高度自适应(同域)实例详解
May 16 Javascript
Bootstrap Tooltip显示换行和左对齐的解决方案
Oct 11 Javascript
微信小程序中使用ECharts 异步加载数据实现图表功能
Jul 13 Javascript
ES6 系列之 Generator 的自动执行的方法示例
Oct 19 Javascript
vue响应式更新机制及不使用框架实现简单的数据双向绑定问题
Jun 27 Javascript
p5.js码绘“跳动的小正方形”的实现代码
Oct 22 Javascript
VUE DEMO之模拟登录个人中心页面之间数据传值实例
Oct 31 Javascript
Vue项目中使用flow做类型检测的方法
Mar 18 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
长波知识介绍
2021/03/01 无线电
PHP递归删除目录几个代码实例
2014/04/21 PHP
使用JavaScript创建新样式表和新样式规则
2016/06/14 PHP
js多级树形弹出一个小窗口层(非常好用)实例代码
2013/03/19 Javascript
js中cookie的添加、取值、删除示例代码
2013/10/21 Javascript
JS打开新窗口防止被浏览器阻止的方法
2015/01/03 Javascript
json格式的javascript对象用法分析
2016/07/04 Javascript
第一次接触神奇的Bootstrap基础排版
2016/07/26 Javascript
使用JSON作为函数的参数的优缺点
2016/10/27 Javascript
详解JavaScript模块化开发
2016/12/04 Javascript
JQuery.validationEngine表单验证插件(推荐)
2016/12/10 Javascript
JavaScript判断变量名是否存在数组中的实例
2017/12/28 Javascript
jQuery实现页码跳转式动态数据分页
2017/12/31 jQuery
vue实现同一个页面可以有多个router-view的方法
2018/09/20 Javascript
详解vue2.0 资源文件assets和static的区别
2018/11/27 Javascript
vue路由传参的基本实现方式小结【三种方式】
2020/02/05 Javascript
vue二选一tab栏切换新做法实现
2021/01/19 Vue.js
python求pi的方法
2014/10/08 Python
python中django框架通过正则搜索页面上email地址的方法
2015/03/21 Python
python中Genarator函数用法分析
2015/04/08 Python
Python中的异常处理简明介绍
2015/04/13 Python
解读Python编程中的命名空间与作用域
2015/10/16 Python
Python使用ntplib库同步校准当地时间的方法
2016/07/02 Python
Python中的id()函数指的什么
2017/10/17 Python
使用Python做垃圾分类的原理及实例代码附源码
2019/07/02 Python
Python 单例设计模式用法实例分析
2019/09/23 Python
python如何使用jt400.jar包代码实例
2019/12/20 Python
使用Python求解带约束的最优化问题详解
2020/02/11 Python
纯css3实现思维导图样式示例
2018/11/01 HTML / CSS
html5 音乐播放器 audio 标签使用概述
2013/07/15 HTML / CSS
高级方案规划工程师岗位职责
2013/11/29 职场文书
《陶罐和铁罐》教学反思
2014/02/19 职场文书
餐饮投资计划书
2014/04/25 职场文书
正规借条模板
2015/05/26 职场文书
行政处罚事先告知书
2015/07/01 职场文书
口袋妖怪冰系十大最强精灵,几何雪花排第七,第六类似北极熊
2022/03/18 日漫