如何退出功能中间?

时间:2016-08-25 15:06:41

标签: javascript angularjs function

如何嵌套if?

$scope.addToCart = function () {
    if (flagA) {
        if (flagB) {
            if (flagC) {
                alert('nononono!');
                return;
            }
        }
    }
    someAnotherFunction();
};

我有一个功能:

$scope.addToCart = function () {
    var foo = 5;
    if (someFlag == 'Y') {
        alert('warning!');
        return;
    }
    someAnotherFunction();
};

我在某处调用此函数

ng-click = "addToCart()"

如果

,我打算退出此功能
someFlag == 'Y'

然后不执行

someAnotherFunction();

但它仍然执行它。

WebStorm告诉我这个return是不必要的,因此可以安全删除。

2 个答案:

答案 0 :(得分:0)

您可以将调用放入else-block中的其他函数:

$scope.addToCart = function () {
    var foo = 5;
    if (someFlag == 'Y') {
        alert('warning!');
        return;
    } else {
      someAnotherFunction();
    }

};

这应该让你更接近了解正在发生的事情

答案 1 :(得分:0)

如果您确定if条件已满足,但返回不起作用,那么您也可以尝试将someAnotherFunction();放入其他地方:

if (someFlag == 'Y') {
    alert('warning!');
    return;
}
else {
    someAnotherFunction();
}

只有当if块不是时才能执行someAnotherFunction()

<强>附录

原始代码应该有效,这只是一种解决方法,正如评论中所指出的那样。然而,这两种方法在理论上都达到了相同的目标。

有关详细信息,请查看this question - 有关差异的详细信息。