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

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

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

 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}

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


Share Tweet Send
0 Комментарии
Загрузка...
You've successfully subscribed to Pinta IT 🍺
Great! Next, complete checkout for full access to Pinta IT 🍺
Welcome back! You've successfully signed in
Success! Your account is fully activated, you now have access to all content.