关于下面的代码,我试图从循环内部返回一个变量。我从函数内部调用循环,但是当运行脚本时,我得到“ Uncaught ReferenceError :newVar 未定义”。
有人可以解释一下为什么没有返回该值吗?
https://jsfiddle.net/95nxwxf4/
<p class="result"></p>
var testVar = [0,1,2];
var loopFunction = function loopFunction() {
for (var j=0;j<testVar.length;j++) {
if (testVar[j]===1) {
var newVar = testVar[j];
return newVar;
}
}
return false;
};
var privateFunction = (function privateFunction() {
loopFunction();
document.querySelector('.result').innerHTML = newVar;
})();
最佳答案
您需要分配从loopFunction
返回的值:
var privateFunction = (function privateFunction() {
var newVar = loopFunction();
document.querySelector('.result').innerHTML = newVar;
})();
编辑:
这是因为 loopFunction
中分配的 newVar
的作用域为该函数,这意味着它仅存在于该函数内部。
关于javascript - 为什么这个 JS 循环不能从函数内部返回变量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37571149/