[英]Why can't this JS loop return a variable from inside the function
關於下面的代碼,我試圖從循環內部返回一個變量。 我從函數內部調用循環,但是運行腳本時,出現“未捕獲的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
該函數,這意味着它僅存在於該函數內部。
由於變量newVar的范圍僅在loopFunction中定義,因此未定義newVar。
實際上,為loopFunction返回了一個值,但僅僅是一個值,變量newVar已超出范圍,因此未在此行中定義。
document.querySelector('.result').innerHTML = newVar;
更改為:
document.querySelector('.result').innerHTML = loopFunction();
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.