我过去见过你可以这样做:
function combine(arg1){
return function(arg2){
return (arg1 + arg2);
};
}
combine("foo")("bar");
结果将是“foobar”。
你当然可以这样做:
(function(x){
return function(y){
return x+y;
};
})(2)(3);
结果为5。
我只是想知道这叫什么。我想我看到了一个我无法找到的小型Crockford视频,我确信它出现在Good Parts上,简要地谈到了这一点。我也有这本书,我在那里看不到它。
这似乎是另一种调用函数和控制变量范围的方法。
答案 0 :(得分:2)
我相信您正在寻找Currying
这个词答案 1 :(得分:1)
使用Douglas Crockford测试您对功能范围的了解:http://youtu.be/hRJrp17WnOE
Crockford的网站包含一份优秀且令人兴奋的Currying细分的副本。 (我不确定原作者是谁。)它显示了多个调用的例子。
http://www.crockford.com/javascript/www_svendtofte_com/code/curried_javascript/index.html
答案 2 :(得分:0)
如果您指的是内部函数从外部函数访问变量的能力,则称为闭包。
你可以在这里阅读闭包:
How do JavaScript closures work?
答案 3 :(得分:0)