我以为一旦create Function运行,我将可以访问内部函数。
function createFunction() {
function printHello() {
return console.log("hello");
}
return printHello;
}
// Both of these return undefined
createFunction(printHello());
createFunction.printHello();
有什么想法吗?
最佳答案
正确的语法是:
createFunction()();
...或者更罗word:
const returnedFunction = createFunction();
returnedFunction();
...因为
printHello
名称仅在createFunction
中有意义,但是其值实际上是由该函数返回的。是的,按顺序放置任意数量的()
是完全可以的。附带说明一下,返回
console.log('hello')
的结果没有什么意义:记录日志本身是一个副作用,无需检查其结果。关于javascript - 为什么我不能使用点语法访问返回的函数,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/52104788/