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学习笔记(2)--用jquery实现各种模态提示框代码及项目构架
Apr 08 Javascript
写得不错的jquery table鼠标经过变色代码
Sep 27 Javascript
通过js获取div的background-image属性
Oct 15 Javascript
javascript的alert box在java中如何显示多行
May 18 Javascript
JS实现的生成随机数的4个函数分享
Feb 11 Javascript
JavaScript实现动画打开半透明提示层的方法
Apr 21 Javascript
JavaScript 链式结构序列化详解
Sep 30 Javascript
详解闭包解决jQuery中AJAX的外部变量问题
Feb 22 Javascript
JSON在Javascript中的使用(eval和JSON.parse的区别)详细解析
Sep 05 Javascript
vue生成token并保存到本地存储中
Jul 17 Javascript
node.js express捕获全局异常的三种方法实例分析
Dec 27 Javascript
原生js+css调节音量滑块
Jan 15 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 文件缓存的性能测试
2010/04/25 PHP
php中批量删除Mysql中相同前缀的数据表的代码
2011/07/01 PHP
PHP在获取指定目录下的目录,在获取的目录下面再创建文件,多平台
2011/08/03 PHP
用 Composer构建自己的 PHP 框架之构建路由
2014/10/30 PHP
利用PHPStorm如何开发Laravel应用详解
2017/08/30 PHP
PHP安全之register_globals的on和off的区别
2020/07/23 PHP
php实现JWT验证的实例教程
2020/11/26 PHP
jQuery.ajax 用户登录验证代码
2010/10/29 Javascript
js获取触发事件元素在整个网页中的绝对坐标(示例代码)
2013/12/13 Javascript
JS阻止冒泡事件以及默认事件发生的简单方法
2014/01/17 Javascript
js实现文字选中分享功能
2017/01/25 Javascript
node.js(express)中使用Jcrop进行图片剪切上传功能
2017/04/21 Javascript
Angular4项目中添加i18n国际化插件ngx-translate的步骤详解
2017/07/02 Javascript
Node使用Sequlize连接Mysql报错:Access denied for user ‘xxx’@‘localhost’
2018/01/03 Javascript
layui实现点击按钮给table添加一行
2018/08/10 Javascript
[00:15]TI9观赛名额抽取
2019/07/10 DOTA
在Python的列表中利用remove()方法删除元素的教程
2015/05/21 Python
shelve  用来持久化任意的Python对象实例代码
2016/10/12 Python
python去除拼音声调字母,替换为字母的方法
2018/11/28 Python
详解Python中string模块除去Str还剩下什么
2020/11/30 Python
Smallable英国家庭概念店:设计师童装及家居装饰
2017/07/05 全球购物
美国滑雪板和装备购物网站:Skis.com
2018/12/20 全球购物
新加坡网上美容店:Hermo新加坡
2019/06/19 全球购物
自荐信格式
2013/12/01 职场文书
在校大学生个人的自我评价
2014/02/13 职场文书
行政人事经理职位说明书
2014/03/05 职场文书
水电站项目建议书
2014/05/12 职场文书
七一党日活动总结
2014/07/08 职场文书
忠诚教育心得体会
2014/09/03 职场文书
晚自修旷课检讨书怎么写
2014/11/17 职场文书
欢迎词怎么写
2015/01/23 职场文书
征求意见函
2015/06/05 职场文书
《纸船和风筝》教学反思
2016/02/18 职场文书
公司转让协议书
2016/03/19 职场文书
Python+Selenium自动化环境搭建与操作基础详解
2022/03/13 Python
在容器中使用nginx搭建上传下载服务器
2022/05/11 Servers