提问人:SHAILY 提问时间:11/17/2023 最后编辑:0stone0SHAILY 更新时间:11/17/2023 访问量:55
从另一个函数返回的函数
Function returned from another function
问:
在尝试运行类似的函数时,我观察到输出存在差异。
function func1(){
function sum(){
console.log(2+5);
}
return sum();
}
func1();
function func2(){
return (function sum(){
console.log(2+5);
})
}
func2();
从 func1 开始,输出为 7。但是从 func2 来看,控制台中什么都没有。这两个函数有什么区别,因为两者都是从函数返回的?为什么一个被调用而另一个没有?
答:
2赞
Nina Scholz
11/17/2023
#1
func2
返回一个函数,调用它后,你会得到结果。
function func1() {
function sum() {
console.log(2 + 5);
}
return sum();
}
func1();
function func2() {
return (function sum() {
console.log(2 + 5);
});
}
func2()(); // call function
console.log(func2()); // see function declaration
1赞
J. Vas
11/17/2023
#2
从 func1 开始,输出为 7。但是从 func2 开始,控制台中没有任何内容。这两个函数有什么区别,因为两者都是从函数返回的? 答案是两者的区别在于,第一个的 return 语句调用 sum 函数。
在第二个函数中,返回函数的定义,因此它被定义但未调用,导致没有输出。
下一个:调用内联函数时未定义引用
评论
func2
func2()();
()()
result = func2(); result();
func2
func1
func2