一个功能突破另一个。可能吗?

时间:2012-06-13 09:55:24

标签: javascript

是否可以通过另一个功能停止一个功能?

我想要这样的事情:

 function foo()
 {
   bar();
   /*if is ok, then continue, else break*/
 }

 function bar()
 {
   if(!/**condition**/) stop foo();
 }

我知道这可以通过使用类似的东西来实现:

  function foo()
  {
    if(!bar()) return;
  }

但也许有更好的方法?

示例:

  var dk = new function() {
   this.doSomething() {
     this.em("some_id") || return;
   };

    this.em(data) { 
      return document.getElementById(data);
    };
  };

2 个答案:

答案 0 :(得分:0)

在你的函数中,你无法告诉调用函数停止执行。

您建议的第二个版本是实现此行为的常见做法 - 让函数返回true如果成功则返回false如果没有,则让调用函数决定做什么(即打破执行。)

另一种方法可能是抛出异常。你应该考虑自己在你的情况下可能更有用的东西

答案 1 :(得分:0)

我想你已经回答了自己......

bar()函数可以进行所需的所有检查或代码,然后将truefalse返回到调用函数foo()

根据返回的值,您决定继续执行代码还是停止代码。