Что такое мутация и чистота в функциях?

1 мин
Автор PINTA IT
Что такое мутация и чистота в функциях?
Что такое мутация и чистота в функциях?

Мутация  это изменение исходной структуры данных. Например:

 const foo = {
   bar: 'baz'
 };

 foo.bar = 'qux';

Так как объекты в JavaScript передаются по ссылке, то функция может изменить объект аргумента. Если это происходит, то функция не является чистой. Например:

 const x = {a: 1, b: 1}
 const mutateX = (origin) => {
   origin.a += 2;
   return origin;
 }
 const y = mutateX(x);
 console.log(y, x) // {a:3, b:1}, {a:3, b:1}

Чистота функций очень важна, она гарантирует отсутствие багов, связанных со случайным изменением объектов. По этому, вместо того, чтобы изменять оригинал, в функциональном программировании принято работать с копией объекта.

Похожие публикации