函数返回函数
Function returning a Function?
我正在学习Javascript,并试图弄清楚这个Sa() function
在这个代码示例中的作用。
我以为它是小林丸,经过进一步检查,我相信这个Sa() function
返回了其他功能以及它自己。我接近了吗?
如果是这样的话,那会有什么结果呢?
var Jj, Ss, Sa;
Ss = function(n) {
return n + 1;
};
Jj = function(f, n) {
return function(i) {
if (n < 1) {
return i;
} else {
return f(Jj(f, n - 1)(i));
}
};
};
Sa = function(a, b) {
return Jj(Jj(Ss, a), b)(0);
};
@Bamar也注意到,原来的问题中似乎有一个拼写错误。Jj(Sa, a)
应该是Jj(Ss, a)
。
随着这种变化,Sa
函数返回a
和b
的乘积,但计算方式非常迂回。
以下是记录状态信息的(固定)代码的修改版本:
var Jj, Ss, Sa;
Ss = function(n) {
console.log("C:" + (n + 1));
return n + 1;
};
Jj = function(f, nIterations) {
return function(i) {
if (nIterations < 1) {
console.log('A' + nIterations + ":" + i);
return i;
} else {
console.log('B' + nIterations);
return f(Jj(f, nIterations - 1)(i));
}
};
};
Sa = function(a, b) {
return Jj(Jj(Ss, a), b)(0);
};
这是一个样本运行的输出:
> Sa(3,4)
B4
B3
B2
B1
A0:0
B3
B2
B1
A0:0
C:1
C:2
C:3
B3
B2
B1
A0:3
C:4
C:5
C:6
B3
B2
B1
A0:6
C:7
C:8
C:9
B3
B2
B1
A0:9
C:10
C:11
C:12
12
相关文章:
- ES6构造函数返回基类的实例
- 从函数返回角度承诺
- 如何从jquery函数返回变量
- 根据是否解析了 Promise 从函数返回值
- Javascript函数返回未定义
- 如果函数返回True,则显示Javascript按钮
- Google Sheet自定义函数返回0
- 从Ajax函数返回值
- 使用for循环从Javascript中的函数返回多个值
- 谷歌地图:函数返回未定义的值在console.log中运行良好
- 从函数中的函数返回数组时出错
- 如何从嵌套的API函数返回值
- 从Mongoose结果匿名函数返回父函数
- 函数返回错误'令牌{'
- Jquery函数返回订单问题
- Mocha/Chai测试链接到函数返回断言错误
- 从异步函数返回值
- 函数返回后更新变量
- 我如何才能继续'如果'语句来比较作为参数的多个函数返回值
- 将外部函数返回的id传递给内部函数