js实现类似于add(1)(2)(3)调用方式的方法
JavaScript中的神奇链式调用:add(1)(2)(3)的实现方式
你是否曾经想过如何实现在JavaScript中连续调用函数,如add(1)(2)(3)这样的调用方式并得到一个结果?这是一种非常有趣且实用的技术,将向你揭示其背后的原理。
让我们看一个简单的例子:
```javascript
var add = function(a){
return function(b){
return function(c){
return a+b+c;
};
};
};
console.log(add(1)(2)(3)); // 输出:6
```
在上述代码中,我们定义了一个名为add的函数。这个函数返回一个新的函数,这个新函数接受一个参数并返回第三个函数。第三个函数接受三个参数并返回他们的总和。这就是链式调用的基本原理。
如果你想要实现连续调用多个数字,如add(1)(2)(3)(4),上述代码就无法满足需求了。为了实现这一点,我们可以稍微修改一下代码:
```javascript
function add(x) {
var sum = x;
var tmp = function (y) {
sum += y;
return tmp; // 继续返回函数本身,以便进行链式调用
};
tmp.toString = function () {
return sum;
};
tmp.valueOf = function () { // 当进行数值计算时,会调用 valueOf 方法
return sum;
};
return tmp;
}
console.log(add(1)(2)(3)); // 输出:6
console.log(add(1)(2)(3)(4)); // 输出:10
```
希望这篇文章能帮助你理解JavaScript中的链式调用技术,如果你有任何问题或者想要了解更多相关知识,欢迎随时向我提问。
网络推广
- html如何对span设置宽度
- 无光驱无U盘安装系统的图文教程
- 电脑重启后罗技m336蓝牙鼠标不自动连接该怎么办
- 电脑自带的日语输入法打不出日语怎么办?
- 清理电脑灰尘需要注意的三大事项
- css后代选择器使用方法实例
- Dreamweaver怎么制作动态导航- dw网页添加动态导航
- 无线鼠标怎么连接-无线鼠标连接电脑
- 电脑蓝屏提示:Bunknown hard error该怎么解决?
- cpqdfwag.exe是什么进程 能结束吗 cpqdfwag进程查询
- Win10系统如何取消开机密码?Win10取消开机密码的
- win10桌面背景不显示怎么办 win10桌面背景不显示解
- 巧用DW判断字符串中是否有换行
- 小米4已开始推送Win10 Mobile预览版10536.1004更新
- Dreamweaver中制作活动菜单条效果的方法
- 女巫的遗产:羁绊配置 女巫的遗产:羁绊最低配