Функция должна принимать аргументы и возвращать значение. Тогда она считается чистой. Следовательно, если функция не принимает хотя бы одного аргумента, или не возвращает значение, она не чистая.
Рассмотрим объект, в котором нужно изменить значения.
var ivan = { name: "Ivan", canRead: false, canWrite: false, }
не правильный подход:
//функция нарушающая концепцию чистоты function selfEducate(){ ivan.canRead = true; ivan.canWrite = true; return ivan; } //функция нарушающая концепцию неизменяемости const selfEducate = (person) => { person.canRead = true; person.canWrite = true; return person; } selfEducate(ivan);
Вот правильный подход:
const selfEducate = person => ({ ...person, canRead: true, canWrite: true })
Практика