JavaScriptObjetosdesafio

Observer com objetos

O padrão Observer é usado em sistemas de eventos do navegador, em bibliotecas como Redux ou Vuex. Permite que partes do código reajam a mudanças sem precisar saber quem as disparou. Dominá-lo ajuda a criar código modular e desacoplado.

O PROBLEMA

Implemente Observer com inscrever, desinscrever, notificar.

EXEMPLO

const store = criarStore();
store.inscrever('mudanca', handler);
store.notificar('mudanca', {novo:'valor'})

SOBRE O CONCEITO

Você vai criar um objeto store com métodos inscrever, desinscrever e notificar. A ideia é manter um dicionário onde cada chave é o nome do evento e o valor é um array de funções handler. Em inscrever, adicione o handler ao array. Em notificar, percorra o array com forEach e chame cada handler. O erro comum no desinscrever é não usar filter corretamente — por exemplo, usar filter sem retornar o array filtrado, ou remover apenas um índice fixo. Você precisa retornar um novo array com todos os handlers que não sejam o handler removido. Use const para as variáveis e {} para o objeto principal.

RESOLUÇÃO

Mais exercícios de Objetos

JSO011 · IntermediárioFactory functionJSO001 · BásicoCriar objeto simplesJSO003 · BásicoMétodo no objetoJSO006 · BásicoDesestruturação de objeto
Ver todos os exercícios de JavaScript