Директива return
Здравствуйте!
Пожалуйста, помогите понять разницу между этими двумя кодами: function sum (a, b) { return (a + b); } alert ( sum (5, 6)); function sum (a, b) { alert (a + b); } sum (5, 6); Цитата из учебника: "Как только до неё (директивы return) доходит управление – функция завершается и значение передается обратно." Я не могу понять, что значит значение передаётся обратно, куда обратно передаётся. :( Ведь по функциональности оба кода одинаковые. |
Первый вариант показывает чистую функцию, т. е. её результат вычисляется на основе её аргументов. Второй вариант показывает функцию с побочным эффектом: берётся сумма аргументов и выводится в диалоговое окно, в этом случае невозможно построить однозначную таблицу значений функции, поскольку она всегда возвращает undefined.
Побочный эффект, например, выражается в том, что вторая функция sum меняет внешний мир. (Показалось окошко) Функция alert сама по себе имеет побочный эффект: она что-то выводит на экран. Лучше использовать чистые функции (первый пример). Когда функция не имеет побочных эффектов, она называется чистой функцией. Чистые функции:
Статьи: |
Цитата:
function sum (a, b) { return (a + b); } var res = sum (5, 6); alert ( res); function sum (a, b) { alert (a + b); } var res = sum (5, 6); alert ( res); В первом варианте вычисленный внутри суммы результат возвращается в место вызова функции - строка 4 - и присваивается переменной res Во втором случае функция не возвращает вычисленный результат. |
Спасибо. Стало понятнее. :)
|
Часовой пояс GMT +3, время: 15:46. |