function functionFunction(str) {
var f = function(s){
return str + ", " + s;
}
return f;
}
如果我这样调用functionFunction('Hello')('world')后边的('world')代表什么
function functionFunction(str) {
var f = function(s){
return str + ", " + s;
}
return f;
}
如果我这样调用functionFunction('Hello')('world')后边的('world')代表什么
因为在js中函数也是可以作为返回值的,functionFunction('Hello')是执行functionFunction函数,会返回一个函数,也就是你的函数f,functionFunction('Hello')('world')也就相当于是f('world'),不知道这样说你能不能理解('world')是什么了
functionFunction('Hello')('world')
=> (functionFunction('Hello'))('world')
=> f('world') //str="Hello"
=> "Hello, world"
你这么理解:functionFunction('Hello')
的返回结果是
function(s){
return 'Hello' + ", " + s;
}
再吧'world'作为参数传入替代了s的位置, 就变成了Hello, world
13 回答12.8k 阅读
7 回答1.9k 阅读
3 回答1.1k 阅读✓ 已解决
2 回答1.2k 阅读✓ 已解决
6 回答854 阅读✓ 已解决
6 回答1k 阅读
2 回答1.3k 阅读✓ 已解决
可以理解这个函数的闭包,当你调用world的时候。functionFunction那一层的的东西不会立即被垃圾回收