и наконец, вот первая не чистая функция в череде примеров
const add5 = (() => {
let x = 0
return {
add5: add({
get x() {
x += 1
return 5
}
}),
getState: () => x
}
})()
я перечитал тред и понял, что, наверное, остался не понятым 😅
я имел в виду, что в твоем примере ты нарочно зааффектил входные данные, повлияв на конечный результат как проектировщик. надо было более "подробно" изложить эту мысль.
насолько предсказуем результат этого кода для конкретного субъекта? ровно до тех пор, пока он не разберется.
в случае с объектом — тем более. поскольку иммутабельность изначального аргумента нарушена. это можно понять лишь взглянув на код и произведя вычисления