Solucionado (ver solução)
Solucionado
(ver solução)
4
respostas

acho que os blocos de codigo estão invertidos.

quando tento fazer uma sugestão de alterção a pag da erro 404 quando tento salvar

Aula 01 - ex 14

Aprendemos a alterar o contexto de execução de uma função/método através de Reflect.apply. Vejamos um trecho de código que faz isso:

class ListaNegociacoes {

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

    adiciona(negociacao) {
        this._negociacoes.push(negociacao);
        this._armadilha.apply(this._contexto, [this]);
    }

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

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

O artefato Reflect é algo novo do ES6, contudo poderíamos conseguir com ES5 o mesmo resultado, assim:

class ListaNegociacoes {

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

    adiciona(negociacao) {
        this._negociacoes.push(negociacao);
        Reflect.apply(this._armadilha, this._contexto, [this]);
    }

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

    esvazia() {
        this._negociacoes = [];
        Reflect.apply(this._armadilha, this._contexto, [this]);
    }
}

Veja que estamos chamando o método apply, mas diretamente na função atribuída à propriedade this._armadilha. O resultado é o mesmo quando usamos Reflect.apply.

Apesar de um pouco menos verbosa, a ideia é que operações como essa sejam feitas através de Reflect, pois é uma primeira tentativa da linguagem JavaScript de centralizar funcionalidades como vimos em um único lugar.

Achei interessante mostrar como esse procedimento é feito no ES5 para que o aluno entenda que o ES6, além de trazer muitas novidades, procura padronizar bastante coisa da própria linguagem.

4 respostas

Fala ai Vinicius, tudo bem? Realmente, acho que está invertido mesmo.

Consegue tentar sugerir a melhoria novamente? Talvez tivemos alguma instabilidade no momento que vocÊ tentou, se não der certo me avisa que eu passo para o pessoal.

Espero ter ajudado.

Ainda esta dando o erro 404

Vou passa para o pessoal então Vinicius, obrigado e desculpe os problemas.

Abraços e bons estudos.

solução!

Fala ai Vinicius, tudo bem? O link da atividade seria esse? https://cursos.alura.com.br/course/javascript-es6-orientacao-a-objetos-parte-2/task/17461

Se sim, a ordem dos códigos estão corretos.

Abraços e bons estudos.

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