1
resposta

this._armadilha is not a function

o código dessa aula está correto flávio? https://cursos.alura.com.br/course/javascript-es6-orientacao-a-objetos-parte-2/task/17473

avancei para a próxima para ver se conseguia o código mais completo e descobria o erro, porém continuou na mesma (this._armadilha is not a function)

<script>
        let lista = new Proxy(new ListaNegociacoes(), {
            get: function(target, prop, receiver) {
                if(['adiciona', 'esvazia'].includes(prop) && typeof(target[prop]) == typeof(Function)) {
                    return function() {
                        console.log(`a propriedade "${prop}" foi interceptada`);
                        Reflect.apply(target[prop], target, arguments);
                    }
                }
                return Reflect.get(target, prop, receiver);
            }
        });
            lista.adiciona(new Negociacao(new Date(), 1, 100));
            // lista._negociacoes
    </script>

Uncaught TypeError: this._armadilha is not a function

1 resposta

Veja que em nenhum momento do seu código há referência para this._armadilha. Talvez você tenha esquecido de remover a armadilha do constructor da classe que encapsula a lista de negociações.

Fique tranquilo que mais de 2000 alunos terminaram o curso sem problema algum. Não é raro o aluno pular algum passo anterior que dá erro lá pra frente. Vamos descobrir.

Aliás, poste a mensagem de erro completa, a stacktrace. Só a mensagem do erro não diz o contexto no qual ele foi lançado. Beleza? Fico no aguardo também da stack completa.

Confira a classe que indiquei. Lembre-se que no início era usado armadilha no próprio modelo e justamente a introdução do proxy é para que ele não seja necessário.