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实例教程(19) 使用HoTMetal(1)
Dec 23 Javascript
Javascript在IE和FireFox中的不同表现简析
Dec 03 Javascript
修改js Calendar日历控件 兼容IE9/谷歌/火狐
Jan 04 Javascript
window.event.keyCode兼容IE和Firefox实现js代码
May 30 Javascript
jQuery如何实现点击页面获得当前点击元素的id或其他信息
Jan 09 Javascript
JS实现的4种数字千位符格式化方法分享
Mar 02 Javascript
浅析JavaScript动画模拟拖拽原理
Dec 09 Javascript
Vue 短信验证码组件开发详解
Feb 14 Javascript
layui分页效果实现代码
May 19 Javascript
json数据格式常见操作示例
Jun 13 Javascript
JS script脚本中async和defer区别详解
Jun 24 Javascript
为什么node.js不适合大型项目
Apr 28 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
收音机发烧友应当熟知的100条知识
2021/03/02 无线电
php学习笔记 面向对象中[接口]与[多态性]的应用
2011/06/16 PHP
php安全开发 添加随机字符串验证,防止伪造跨站请求
2013/02/14 PHP
ThinkPHP关于session的操作方法汇总
2014/07/18 PHP
浅析Yii2缓存的使用
2016/05/10 PHP
PHP手机号码及邮箱正则表达式实例解析
2020/07/11 PHP
Gambit vs ForZe BO3 第二场 2.13
2021/03/10 DOTA
jquery 图片轮换效果
2010/07/29 Javascript
防止浏览器记住用户名及密码的简单实用方法
2013/04/22 Javascript
如何从jQuery的ajax请求中删除X-Requested-With
2013/12/11 Javascript
快速掌握Node.js环境的安装与运行方法
2016/02/16 Javascript
JS模仿腾讯图片站的图片翻页按钮效果完整实例
2016/06/21 Javascript
Vue二次封装axios为插件使用详解
2018/05/21 Javascript
Vue中computed、methods与watch的区别总结
2019/04/10 Javascript
详解如何运行vue项目
2019/04/15 Javascript
JS设置自定义快捷键并实现图片上下左右移动
2019/10/17 Javascript
Vue可自定义tab组件用法实例
2019/10/24 Javascript
node.js域名解析实现方法详解
2019/11/05 Javascript
Javascript Worker子线程代码实例
2020/02/20 Javascript
微信小程序实现发微博功能的示例代码
2020/06/24 Javascript
[04:29]2016国际邀请赛中国区预选赛Ehome战队教练采访
2016/06/27 DOTA
python处理二进制数据的方法
2015/06/03 Python
Django中login_required装饰器的深入介绍
2017/11/24 Python
Python 文本文件内容批量抽取实例
2018/12/10 Python
python实现简单多人聊天室
2018/12/11 Python
python flask搭建web应用教程
2019/11/19 Python
使用python实现希尔、计数、基数基础排序的代码
2019/12/25 Python
PyTorch中topk函数的用法详解
2020/01/02 Python
大学生创业计划书的范文
2014/01/07 职场文书
优秀员工表扬信
2014/01/17 职场文书
2014社区三八妇女节活动总结
2014/03/01 职场文书
走群众路线剖析材料
2014/10/09 职场文书
派出所副所长四风问题个人整改措施思想汇报
2014/10/13 职场文书
党支部书记岗位职责
2015/02/15 职场文书
给学校的建议书400字
2015/09/14 职场文书
微软Win11什么功能最惊艳? Windows11新功能特性汇总
2021/11/21 数码科技