Закрытие Javascript и побочные эффекты на простом английском языке? (отдельно)

Я читал несколько книг по JavaScript и всегда слышал о замыканиях и побочных эффектах. Почему-то не могу понять, что это такое на самом деле. Может ли кто-нибудь объяснить мне, что они такое, на простом английском плюс примеры? (как вы объясняли это кому-то с уровнем программирования графического дизайнера).

24
задан alexchenco 14 November 2011 в 22:32
поделиться

1 ответ

Я новичок в JavaScript и не буду пытаться говорить о замыканиях. Однако мое новшество в JavaScript заставляет меня хорошо понимать использование побочных эффектов, которые невозможны в моем обычном языке программирования (Erlang).

Побочные эффекты кажутся обычным способом изменения состояния в JavaScript. Возьмем, к примеру, этот пример с веб-сайта w3cschools.com:

<script>
function myFunction() {
    document.getElementById("demo").innerHTML = "Paragraph changed.";
}
</script>

Здесь нет входных параметров или возвращаемого значения, вместо этого содержимое документа изменяется, поскольку оно является глобальным по объему для функции. Если вы напишите это, например, на Erlang, документ будет передан как параметр, и будет возвращено новое состояние документа. Человек, читающий вызывающую программу, увидит переданный документ и возвращенный измененный документ.

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

0
ответ дан 28 November 2019 в 23:26
поделиться
Другие вопросы по тегам:

Похожие вопросы: