function functionFunction(str) {
var f;
return f=function(obj){
return str+', '+obj;
}
}
functionFunction('Hello')('world')
这是我的代码。函数functionFunction将返回函数f。当我在函数functionFunction中声明变量f时,输出为“Hello,World”。当我在函数functionFunction之外声明变量时,输出是相同的。(代码如下)。但我知道在Javascript中全局变量和局部变量在不同的范围内工作。但是,在这种情况下,变量f是全局变量还是本地变量对结果没有影响。我想知道为什么
var f;
function functionFunction(str) {
return f=function(obj){
return str+', '+obj;
}
}
functionFunction('Hello')('world')
答案 0 :(得分:0)
TL; DR:不,没有功能差异。
执行return f= function()
时,您会获得对该函数的引用,并设置变量f
,即使f
从未在任何地方实际使用过。如果没有使用未使用的变量,您的代码将同样有效。
function functionFunction(str) {
return function(obj) {
return str + ', ' + obj;
}
}
let s = functionFunction('Hello')('world');
console.log(s);

您也可以使用ES6语法来执行此操作
const functionFunction = str => {
return obj => str + ', ' + obj
}
let s = functionFunction('Hello')('world');
console.log(s);