Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > JavaScript: Общие вопросы > Если после return`а функции нужно ещё что-то


Автор: Се ля ви 18.11.2009, 15:40
САБЖ:
Код
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
    <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
    <title>Untitled Document</title>
</head>

<body>
    <script type="text/javascript">
        function f1() {
            try {
                return false;
            } finally {
                alert('ok!');
            }
        };
        
        alert(f1());
    </script>

</body>
</html>

В результате сначала будет выведен "ok!", а уже потом - "false", а не наоборот! smile

Очень удобно, когда результат выполнения функции получается где-то в её середине, после чего нужно выполнить некоторые другие действия. В классическом варианте тогда этот результат помещается в некоторую переменную, которая тащится до конца выполнения функции, где, наконец, находит свой return. В некоторых случаях она ещё и рискует угодить в какое-нибудь замыкание и повиснуть мёртвым грузом в памяти браузера. А с помощью такого паттерна можно более элегантно разрулить такую ситуацию.

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)