我想知道是否有办法打破 javascript执行,就像这样
<script>
if(already_done)
{
return; //prevent execution (this yields an error)
}
doSomeStuff();
</script>
我知道这可能是这样的:
<script>
if(already_done)
{
// do nothing
}
else
{
doSomeStuff();
}
</script>
但这不是我正在寻找的解决方案。
希望这是有道理的。
答案 0 :(得分:6)
将其包裹在立即执行的功能中。
(function() {
if (already_done) { return; }
doSomeStuff();
})();
仅供参考:return
没有在函数上下文中是无用的。
此外,this isn't a closure因为它不返回使用外部函数中定义的变量的内部函数。
答案 1 :(得分:3)
将代码置于闭包中,如下所示:
(function (){
if(already_done){
return;
}
doSomeStuff();
})();
它应该有用。
答案 2 :(得分:3)
你在<script>
块中直接有一个选项:你可以抛出一个错误,但这通常不适合在代码块的中间......
if(already_done){
throw "Uh oh";
}
答案 3 :(得分:0)
'has_done'会是什么?布尔值? 这对我来说就像一个循环...你可以使用像?:
while(!already_done) { doSomeStuff(); }
答案 4 :(得分:0)
您可以将break
与label:
<script>
testcase:
if (already_done) {
break testcase; //prevent execution
}
doSomeStuff();
</script>
但是,如其他答案中所述,将其包装在函数中是最好的方法。