模块化JavaScript中的早期退出

时间:2015-03-05 02:28:03

标签: javascript jquery

考虑以下代码,根据某些条件提前退出函数。

function abc() {
  if (some_condition) {
    message('blah');
    return; // early exit
  }
  // otherwise do stuff
}

来到这里提出这个问题我发现Mehdi在这篇文章中的回答基本上就是我所处的位置 jquery javascript avoid running function on condition

但是我想将条件模块化,以便我可以在很多地方使用它,我得到的最好的就是这个(我是一个很长时间的PL / SQL程序员,可能会显示我理解这个基于事件的世界)

function check_condition() {
  if (some_condition) {
    message('blah');
    return false; // early exit
  }
  else
    return true;
}

function abc() {
  if (!check_condition()) {return;}

  // otherwise do stuff
}

在阅读诸如this这样的文章时,我意识到可能首先没有进入函数的更宏大的方案,但我想知道是否有更整洁的方法将消息传播出check_condition()从abc()

提前退出

我仍然觉得我正在用(!check_condition())调用重复同样多的代码。

干杯

1 个答案:

答案 0 :(得分:1)

您在abc中执行的操作可以在仅在checkCondition为真时执行的函数中编码,例如

function checkConditionAndExecute(fn) {
  if ( some condition ) {
    fn();
  }
}


function abc() {
  checkConditionAndExecute(function () {
    // this is only executed when some condition is true :)
  });
}