У меня есть следующий оператор switch в JavaScript:
switch(scrollable.direction){
case "top" :
break;
case "left" :
break;
case "right" :
scrollable.select("."+lineCssClass).invoke("setStyle", {float: "right"});
break;
case "bottom" :
alert("Bottom scrolling not implemented yet ! Sorry !");
return;
}
(бит "invoke" - prototype.js, но в любом случае он не имеет отношения к вопросу)
Это внутри функции. Я хочу, чтобы при значении "bottom"
отображалось сообщение и выполнение метода прекращалось.
Проблема в том, что если значение, например, "top"
, break
выполняется, но выполнение переходит к оператору return;
вместо выхода из оператора switch.
Я на самом деле решил проблему, добавив после возврата дополнительный break;
, который на самом деле является мертвым кодом, поскольку его невозможно выполнить.
Но мне было бы любопытно узнать, почему он вообще выполнял «возврат»?
Редактировать: извините , «возврат» фактически не был выполнен. Я просматривал код с помощью Firebug, и он на самом деле наступил и выделил строку «return», но она не была выполнена.
В моем коде есть другие проблемы, из-за которых он не работает должным образом, и я ошибочно обвинял это.