范围问题 - 退出循环

eja*_*ang 2 javascript scope

我在javascript中有以下代码:

var continueloop = true;

while (continueloop === true) {
    main()
}
Run Code Online (Sandbox Code Playgroud)

function main() {
    //do some stuff here
    continueloop = false;
}
Run Code Online (Sandbox Code Playgroud)

在main函数内将continueloop的值设置为false不会导致while循环停止.我怀疑它可能与javascript的函数范围有关,但我可能会错误的是,有人可以向我解释我必须要改变什么才能获得main()函数范围可访问的continueloop变量所需的效果?

谢谢!

Daf*_*aff 5

如果它继续下去,你为什么不回来?它更清洁,你也不会遇到任何范围问题.

var continueloop = true;

while (continueloop === true) {
    continueloop = main();
}

function main() {
    //do some stuff here
    return false;
}

// or
while(main());
Run Code Online (Sandbox Code Playgroud)