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 日期常用的方法
Nov 11 Javascript
基于Jquery的仿Windows Aero弹出窗(漂亮的关闭按钮)
Sep 28 Javascript
jquery实现输入框动态增减的实例代码
Jul 14 Javascript
JS获取图片实际宽高及根据图片大小进行自适应
Aug 11 Javascript
JavaScript中变量声明有var和没var的区别示例介绍
Sep 15 Javascript
director.js实现前端路由使用实例
Feb 03 Javascript
JavaScript实现的SHA-1加密算法完整实例
Feb 02 Javascript
angular 实现的输入框数字千分位及保留几位小数点功能示例
Jun 19 Javascript
Vue中用props给data赋初始值遇到的问题解决
Nov 27 Javascript
深入理解 JS 垃圾回收
Jun 03 Javascript
ES6学习笔记之let与const用法实例分析
Jan 22 Javascript
Vue中key的作用示例代码详解
Jun 10 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
Ajax PHP简单入门教程代码
2008/04/25 PHP
实例介绍PHP中zip_open()函数用法
2019/02/15 PHP
PHP Cli 模式设置进程名称的方法
2019/06/12 PHP
菜单效果
2006/10/14 Javascript
jquery获取元素值的方法(常见的表单元素)
2013/11/15 Javascript
JS简单实现多级Select联动菜单效果代码
2015/09/06 Javascript
jQuery+css实现非常漂亮的水平导航菜单效果
2016/07/27 Javascript
Three.js学习之文字形状及自定义形状
2016/08/01 Javascript
Javascript(es2016) import和require用法和区别详解
2017/08/11 Javascript
jQuery访问浏览器本地存储cookie、localStorage和sessionStorage的基本用法
2017/10/20 jQuery
浅谈React Native Flexbox布局(小结)
2018/01/08 Javascript
Vuejs 2.0 子组件访问/调用父组件的方法(示例代码)
2018/02/08 Javascript
详解小程序不同页面之间通讯的解决方案
2018/11/23 Javascript
jQuery实现的3D版图片轮播示例【滑动轮播】
2019/01/18 jQuery
JavaScript多种页面刷新方法小结
2019/04/04 Javascript
vue3.0 搭建项目总结(详细步骤)
2019/05/20 Javascript
Node.js实现简单的爬取的示例代码
2019/06/25 Javascript
简单的Python抓taobao图片爬虫
2014/10/26 Python
如何通过python的fabric包完成代码上传部署
2019/07/29 Python
基于Python安装pyecharts所遇的问题及解决方法
2019/08/12 Python
keras实现多种分类网络的方式
2020/06/11 Python
用Python爬取LOL所有的英雄信息以及英雄皮肤的示例代码
2020/07/13 Python
python raise的基本使用
2020/09/10 Python
使用Html5实现异步上传文件,支持跨域,带有上传进度条
2016/09/17 HTML / CSS
英国No.1体育用品零售商:SportsDirect.com
2019/10/16 全球购物
客服实习的个人自我鉴定
2013/10/20 职场文书
办公室综合文员岗位职责范本
2014/02/13 职场文书
公司联欢晚会主持词
2014/03/22 职场文书
维修工先进事迹
2014/05/29 职场文书
列车乘务员工作不细心检讨书
2014/10/07 职场文书
2014年初中班主任工作总结
2014/11/08 职场文书
2014年扶贫工作总结
2014/11/18 职场文书
退休劳动合同怎么写?
2019/10/25 职场文书
mysql timestamp比较查询遇到的坑及解决
2021/11/27 MySQL
Java 超详细讲解hashCode方法
2022/04/07 Java/Android
Golang入门之计时器
2022/05/04 Golang