2010-08-21 3 views
45

Я не могу найти рекомендуемый способ остановить путь части функции при выполнении данного условия. Что-то вроде выхода или разрыва?Как остановить функцию JavaScript при выполнении определенного условия

В настоящее время я использую это:

If (x >= 10) { return; } 
other conditions; 

ответ

56

Возвращение, как вы выходите из тела функции. Вы используете правильный подход.

Я полагаю, в зависимости от того, как ваше приложение структурировано, вы также можете использовать throw. Это обычно требует, чтобы ваши вызовы к вашей функции были завернуты в блок try/catch.

+0

Спасибо за подтверждение. Не удалось найти ответ от Google. – Rhys

+0

Действительно? Просто выкинуть исключение для выхода из функции? Плохой совет ... – WoIIe

+5

@Wolle - вы заметите, что я перечислил его как _alternative_ и с оговоркой, что вызов функции должен быть завернут в блок try/catch. В зависимости от функции, объема проекта и того, что выполняет функция, создание исключения для выхода может быть совершенно соответствующим. Невозможно знать без глубоких знаний о реализации ОП. В любом случае, мой ответ состоял в том, чтобы использовать 'return', а не' throw'. –

7

return оператор выходит из функции из любого места в пределах функции:

function something(x) 
{ 
    if (x >= 10) 
     // this leaves the function if x is at least 10. 
     return; 

    // this message displays only if x is less than 10. 
    alert ("x is less than 10!"); 
} 
26

использования return для этого

if(i==1) { 
    return; //stop the execution of function 
} 

//keep on going 
+1

Возвращение false имеет смысл только в том случае, если вы ожидаете логического возврата и вернете true в других ситуациях. Он может возвращать значение массива или индикатор состояния или подсказку о том, насколько далеко он выполнил эту функцию в результате условного. –

+1

Вы правы ..... – Starx

1

Используйте try...catch заявление в основной функции и всякий раз, когда вы хотите, чтобы остановить функцию просто используйте:

throw new Error("Stopping the function!");