Solucionado (ver solução)
Solucionado
(ver solução)
1
resposta

Faltou o _ na referencia para 'armadilha' - Atividade: 02

Na atividade: "02 - E se atualizarmos a view quando o modelo for alterado?"

O código faz referencia para:

class ListaNegociacoes {
    ...
    adiciona(negociacao) {
        this._negociacoes.push(negociacao);
        this.armadilha(this);
    }
    ...

Mas para funcionar, precisa ser:

class ListaNegociacoes {
    ...
    adiciona(negociacao) {
        this._negociacoes.push(negociacao);
        this._armadilha(this);  // AQUI tem que ter o _
    }
    ...

No video este problema é apontado e corrigido, porem na Transcrição os códigos continuam sem o _

1 resposta
solução!

Bom dia Rogers! Na transcrição é mostrado o erro e pedido para colocar o _. Não entendi sua dúvida a respeito da transcrição.

Segue o trecho da transcrição:

![uncaught type error: this.armadilha is not a fucntion](https://s3.amazonaws.com/caelum-online-public/JS+Avan%C3%A7ado+II/1.2_1_this+armadilha+n%C3%A3o+%C3%A9+uma+fun%C3%A7%C3%A3o.png)

Ele nos diz que o this.armadilha não é uma função dentro de ListaNegociacoes.

Teremos que fazer alguns ajustes, primeiramente, adicionaremos o prefixo _ ao armadilha:

class ListaNegociacoes {

    constructor(armadilha) {
        this._negociacoes = [];
        this._armadilha = armadilha;
    }

    adiciona(negociacao) {
        this._negociacoes.push(negociacao);
        this._armadilha(this);
    }

    get negociacoes() {
        return [].concat(this._negociacoes);
    }

    esvazia() {
        this._negociacoes = [];
        this._armadilha(this);
    }
}

Quer mergulhar em tecnologia e aprendizagem?

Receba a newsletter que o nosso CEO escreve pessoalmente, com insights do mercado de trabalho, ciência e desenvolvimento de software