关于下面的代码,我试图从循环内部返回一个变量。我从函数内部调用循环,但是运行脚本时,出现“未捕获的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;
})();


编辑:

这是因为在newVar中分配的loopFunction是该函数的作用域,这意味着它仅存在于该函数内部。

10-06 15:52