Alguém chegou a implementar o "deep freeze" mencionado pelo instrutor? ou tem alguma curiosidade referente a isto?
Alguém chegou a implementar o "deep freeze" mencionado pelo instrutor? ou tem alguma curiosidade referente a isto?
Fala aí Matheus, tudo bem? Segue uma simples implementação de deep freeze:
const deepFreeze = obj => Object.freeze(obj) && Object.values(obj).forEach(value => typeof value === 'object' && deepFreeze(value))
Basicamente é feito o Object.freeze
no objeto principal e depois para todo objeto dentro do principal é feito um uma nova chamada para a função deepFreeze
de forma recursiva.
Uma versão mais simples:
const deepFreeze = obj => {
Object.freeze(obj)
Object
.values(obj)
.forEach(value => {
if (typeof value === 'object') {
deepFreeze(value)
}
})
}
Espero ter ajudado.