var setup = function(){
console.log("xyz");
return function goBack(){
console.log("It's actually abc");
}
}
现在,在全局范围内调用setup()时,控制台中将显示“xyz”,但返回的函数(goBack)未附加到全局范围中。执行setup()后,我不能从全局范围访问goBack吗?
答案 0 :(得分:2)
setup
正在返回一个函数。
要访问它,请先致电var result = setup()
。现在,goBack
变量存储了result
。
现在,您可以使用result()
从goBack
范围之外致电setup
。
答案 1 :(得分:0)
不,您从setup
返回 - 名称goBack
无关紧要。您需要在setup
:
var foo = setup();
foo();// calls the function youve named `goBack`
// goBack() does not exist here.
答案 2 :(得分:0)
您可以像这样访问此功能goBack
var setup = function(){
console.log("xyz");
return function goBack(){
console.log("It's actually abc");
}(); // IIFE here
}
setup(); // returns xyz , its actually abc
如您所见,我已将goBack变为IIFE并在全局范围内调用setup()。
您需要做的就是调用您返回的函数。