2016-08-25 1 views
-3

중첩 된 경우는 어떻습니까? 함수 중간에 어떻게 종료합니까?

$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은 불필요하므로 안전하게 제거 할 수 있습니다.

당신은 다른 블록에 다른 기능 통화를 보류 할 수
+1

'if (someFlag == 'Y') {'조건이 실패해야합니다. 너는 경계하고 있니? – Tushar

+0

예 경고가 작동했습니다. –

+1

예기치 않은 동작은 대개 코드가 전역 변수에 의존 할 때 발생합니다. –

답변

0

에 무슨 일이 일어나고 있는지 이해를해야

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

someAnotherFunction()이 ONL 실행할 수있는 그런 식 : 만족하지만, 반환은 당신은 또한 다른 사람에 someAnotherFunction();를 넣어 시도 할 수있다, 작동하지 않는 경우 if 블록이 아닌 경우 y입니다.

부록

원래의 코드가 작동해야하며,이 코멘트에서 지적했듯이, 단지 해결 방법입니다. 그러나 두 가지 방법 모두 이론적으로 동일한 목표를 달성합니다.

자세한 내용은 차이점에 대한 자세한 내용은 this question을 확인하십시오.

+1

'if'는 루프가 아닙니다. 그리고 이것이 좋은 해결 방법이지만 원래 코드는 잘 작동합니다. –

+0

나는 루프가 아니라 블록을 의미했다. – AgataB

0

: 당신이 만약 조건이 있는지 확인하는 경우

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

}; 

가까이

관련 문제