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中的变量是传值还是传址的?
Apr 19 Javascript
Ext4.2的Ext.grid.plugin.RowExpander无法触发事件解决办法
Aug 15 Javascript
node.js适合游戏后台开发吗?
Sep 03 Javascript
JavaScript数据类型检测代码分享
Jan 26 Javascript
javascript自动恢复文本框点击清除后的默认文本
Jan 12 Javascript
JavaScript中用let语句声明作用域的用法讲解
May 20 Javascript
原生JS实现风箱式demo,并封装了一个运动框架(实例代码)
Jul 22 Javascript
BootStrap3中模态对话框的使用
Jan 06 Javascript
JavaScript引用类型Array实例分析
Jul 24 Javascript
小程序click-scroll组件设计
Jun 18 Javascript
微信小程序搜索框样式并实现跳转到搜索页面(小程序搜索功能)
Mar 10 Javascript
Vue路由的模块自动化与统一加载实现
Jun 05 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 批量添加多行文本框textarea一行一个
2014/06/03 PHP
Yii中表单用法实例详解
2016/01/05 PHP
input 高级限制级用法
2009/03/26 Javascript
动态载入/删除/更新外部 JavaScript/Css 文件的代码
2010/07/03 Javascript
有关于JS构造函数的重载和工厂方法
2013/04/07 Javascript
JS复制到剪贴板示例代码
2013/10/30 Javascript
js实现俄罗斯方块小游戏分享
2014/01/31 Javascript
Vue.js每天必学之过滤器与自定义过滤器
2016/09/07 Javascript
在JavaScript中调用Java类和接口的方法
2016/09/07 Javascript
JS只能输入正整数的简单实例
2016/10/07 Javascript
微信小程序 WXML、WXSS 和JS介绍及详解
2016/10/08 Javascript
简单几步实现返回顶部效果
2016/12/05 Javascript
jquery uploadify隐藏上传进度的实现方法
2017/02/06 Javascript
微信小程序 仿美团分类菜单 swiper分类菜单
2017/04/12 Javascript
vue项目实现记住密码到cookie功能示例(附源码)
2018/01/31 Javascript
利用JS实现一个同Excel表现的智能填充算法
2018/08/13 Javascript
如何在Vue.js中实现标签页组件详解
2019/01/02 Javascript
Vue+elementui 实现复杂表头和动态增加列的二维表格功能
2019/09/23 Javascript
element 动态合并表格的步骤
2020/12/31 Javascript
[17:00]DOTA2 HEROS教学视频教你分分钟做大人-帕克
2014/06/10 DOTA
Python isinstance函数介绍
2015/04/14 Python
Python简单实现子网掩码转换的方法
2016/04/13 Python
Python进程间通信之共享内存详解
2017/10/30 Python
Pandas中把dataframe转成array的方法
2018/04/13 Python
Python实现读取txt文件中的数据并绘制出图形操作示例
2019/02/26 Python
Python configparser模块操作代码实例
2020/06/08 Python
采购部主管岗位职责
2014/01/01 职场文书
学生拾金不昧表扬信
2014/01/21 职场文书
初中家长寄语
2014/04/02 职场文书
五四青年节演讲稿
2014/05/26 职场文书
宪法宣传周工作方案
2014/05/26 职场文书
学校关爱留守儿童活动方案
2014/08/27 职场文书
秋季运动会开幕词
2015/01/28 职场文书
2016年大学生暑期社会实践活动总结
2016/04/06 职场文书
死磕 java同步系列之synchronized解析
2021/06/28 Java/Android
python读取mnist数据集方法案例详解
2021/09/04 Python