JavaScriptFunçõesdesafio

Mini framework reativo

Sistemas reativos aparecem em toda UI moderna. Em React, Vue ou Svelte, quando o estado muda, a tela atualiza automaticamente. Dominar esse padrão com closures e observers te dá controle sobre como propagar mudanças sem frameworks pesados.

O PROBLEMA

Implemente criarEstado(inicial) que retorna [obterEstado, definirEstado, inscrever]. Notifica inscritos ao mudar.

EXEMPLO

const [get, set, sub] = criarEstado(0);
const unsub = sub(v => console.log(v));
set(1) → 'novo valor: 1'

SOBRE O CONCEITO

A função criarEstado usa uma closure para manter o estado privado e três funções: obterEstado lê o valor, definirEstado atualiza e notifica, inscrever adiciona um callback e retorna uma função unsubscribe. Erro comum: não chamar os inscritos dentro de definirEstado — sem isso, o estado muda mas ninguém é avisado, tornando a assinatura inútil. Outro erro: não retornar uma função para cancelar a inscrição — sem unsubscribe, os callbacks acumulam e causam vazamento de memória ou efeitos colaterais indesejados.

RESOLUÇÃO

Mais exercícios de Funções

JSF019 · IntermediárioComposição de funçõesJSF020 · IntermediárioIIFEJSF022 · AvançadoGenerator functionJSF023 · AvançadoFunção pura vs impura
Ver todos os exercícios de JavaScript