“破解”javascript执行

时间:2010-10-25 18:35:58

标签: javascript execution

我想知道是否有办法打破 javascript执行,就像这样

<script>

if(already_done)
{
  return; //prevent execution (this yields an error)
}

doSomeStuff();

</script>

知道这可能是这样的:

<script>

if(already_done)
{
  // do nothing
}
else
{
  doSomeStuff();
}
</script>

但这不是我正在寻找的解决方案。

希望这是有道理的。

5 个答案:

答案 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)

您可以将breaklabel:

一起使用
<script>

testcase:
if (already_done) {
    break testcase; //prevent execution
}

doSomeStuff();

</script>

但是,如其他答案中所述,将其包装在函数中是最好的方法。