我正在尝试记录 myNewFunction()
,结果显示未定义。
function outer() {
let counter = 0;
function incrementCounter() {
counter++
}
return incrementCounter;
}
const myNewFunction = outer();
console.log(myNewFunction())
console.log(myNewFunction())
console.log(myNewFunction())
答案 0 :(得分:0)
正如我在运行您的代码后能够得到的那样,该代码表明您想要调用 myNewfunction 的函数未在该块中定义。 你要先介绍,然后用。
{ "message": "ReferenceError: myNewFunction 未定义", "文件名": "https://stacksnippets.net/js", "lineno": 21, “科诺”:1 }
答案 1 :(得分:0)
传递值时您不需要实际调用该函数。如果你想获得计数器值。应该退货。而不是在您的示例中返回 incrementCounter() 函数。我还建议与全球相反。避免每次调用 myNewFunction() 时计数器重置。
let counter = 0;
function outer() {
function incrementCounter() {
counter++
}
incrementCounter();
return counter;
}
const myNewFunction = outer;
console.log(myNewFunction())
console.log(myNewFunction())
console.log(myNewFunction())
答案 2 :(得分:0)
我正在尝试记录 myNewFunction(),结果显示未定义。
因为与 myNewFunction
相同的 incrementCounter
不返回任何内容:
function incrementCounter() {
counter++
// no return statement here
}
如果没有明确的 return 语句,函数返回 undefined
。如果您希望它返回 counter
的新值,请执行此操作。
function outer() {
let counter = 0;
function incrementCounter() {
counter++;
return counter;
}
return incrementCounter;
}
const myNewFunction = outer();
console.log(myNewFunction())
console.log(myNewFunction())
console.log(myNewFunction())