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 相关文章推荐
为jQuery增加join方法的实现代码
Nov 28 Javascript
jquery uploadify 在FF下无效的解决办法
Sep 26 Javascript
node.js中的fs.realpathSync方法使用说明
Dec 16 Javascript
jQuery中:enabled选择器用法实例
Jan 04 Javascript
JS实现状态栏跑马灯文字效果代码
Oct 24 Javascript
jQuery焦点图轮播插件KinSlideshow用法分析
Jun 08 Javascript
详解vue前后台数据交互vue-resource文档
Jul 19 Javascript
Vue中对比scoped css和css module的区别
May 17 Javascript
实例分析编写vue组件方法
Feb 12 Javascript
通过JQuery,JQueryUI和Jsplumb实现拖拽模块
Jun 18 jQuery
vue项目中使用vue-layer弹框插件的方法
Mar 11 Javascript
JS模拟实现京东快递单号查询
Nov 30 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中的注释、变量、数组、常量、函数应用介绍
2012/11/16 PHP
ThinkPHP自动完成中使用函数与回调方法实例
2014/11/29 PHP
PHP简单日历实现方法
2016/07/20 PHP
thinkphp3.2嵌入百度编辑器ueditor的实例代码
2017/07/13 PHP
DEFER怎么用?
2006/07/01 Javascript
jQuery 图像裁剪插件Jcrop的简单使用
2009/05/22 Javascript
js操作ajax返回的json的注意问题!
2010/02/23 Javascript
jquery监控数据是否变化(修正版)
2011/04/12 Javascript
js 中将多个逗号替换为一个逗号的代码
2014/06/07 Javascript
js查找节点的方法小结
2015/01/13 Javascript
js实现浏览器窗口大小被改变时触发事件的方法
2015/02/02 Javascript
在Javascript中处理字符串之big()方法的使用
2015/06/08 Javascript
灵活使用数组制作图片切换js实现
2016/07/28 Javascript
使用D3.js构建实时图形的示例代码
2018/08/28 Javascript
解决VUE mounted 钩子函数执行时 img 未加载导致页面布局的问题
2020/07/27 Javascript
Python使用py2exe打包程序介绍
2014/11/20 Python
用Python编写脚本使IE实现代理上网的教程
2015/04/23 Python
Python修改MP3文件的方法
2015/06/15 Python
Python端口扫描简单程序
2016/11/10 Python
python如何重载模块实例解析
2018/01/25 Python
python2与python3的print及字符串格式化小结
2018/11/30 Python
Python中的引用知识点总结
2019/05/20 Python
Appium+python自动化之连接模拟器并启动淘宝APP(超详解)
2019/06/17 Python
pyqt5对用qt designer设计的窗体实现弹出子窗口的示例
2019/06/19 Python
python傅里叶变换FFT绘制频谱图
2019/07/19 Python
django2.2安装错误最全的解决方案(小结)
2019/09/24 Python
解决jupyter notebook 前面书写后面内容消失的问题
2020/04/13 Python
python使用建议与技巧分享(二)
2020/08/17 Python
简单几步用纯CSS3实现3D翻转效果
2019/01/17 HTML / CSS
如何使用amaze ui的分页样式封装一个通用的JS分页控件
2020/08/21 HTML / CSS
英国简约舒适女装品牌:Great Plains
2018/07/27 全球购物
C#面试常见问题
2013/02/25 面试题
Linux的主要特性
2014/10/06 面试题
社团活动总结范文
2014/04/26 职场文书
2015年国庆节演讲稿范文
2015/07/30 职场文书
MySQL系列之三 基础篇
2021/07/02 MySQL