在定义它的函数调用之外调用函数
calling a function outside of the function call in which it was defined
我正在尝试记录 myNewFunction()
,结果显示未定义。
function outer() {
let counter = 0;
function incrementCounter() {
counter++
}
return incrementCounter;
}
const myNewFunction = outer();
console.log(myNewFunction())
console.log(myNewFunction())
console.log(myNewFunction())
正如我在 运行 之后能够得到的那样,您的代码表明您想要调用我的 myNewfunction 的函数未在该块中定义。
必须先介绍,再使用。
{
"message": "ReferenceError: myNewFunction 未定义",
“文件名”:“https://stacksnippets.net/js”,
“线”:21,
“科尔诺”:1
}
传递值时不需要实际调用函数。如果你想获得反价值。应该return吧。在您的示例中代替 returning 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())
I am trying to log myNewFunction(),and the results shows undefined.
因为 myNewFunction
,与 incrementCounter
相同,return 什么都没有:
function incrementCounter() {
counter++
// no return statement here
}
如果没有明确的return语句,函数returns undefined
。如果你想让它 return 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())
我正在尝试记录 myNewFunction()
,结果显示未定义。
function outer() {
let counter = 0;
function incrementCounter() {
counter++
}
return incrementCounter;
}
const myNewFunction = outer();
console.log(myNewFunction())
console.log(myNewFunction())
console.log(myNewFunction())
正如我在 运行 之后能够得到的那样,您的代码表明您想要调用我的 myNewfunction 的函数未在该块中定义。 必须先介绍,再使用。
{ "message": "ReferenceError: myNewFunction 未定义", “文件名”:“https://stacksnippets.net/js”, “线”:21, “科尔诺”:1 }
传递值时不需要实际调用函数。如果你想获得反价值。应该return吧。在您的示例中代替 returning 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())
I am trying to log myNewFunction(),and the results shows undefined.
因为 myNewFunction
,与 incrementCounter
相同,return 什么都没有:
function incrementCounter() {
counter++
// no return statement here
}
如果没有明确的return语句,函数returns undefined
。如果你想让它 return 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())