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

@Flavio - Dúvida sobre contexto léxico...

Na atividade "04 - Arrow function e seu escopo léxico"

class NegociacaoController {

    constructor(data, quantidade, valor) {
        ...
        this._listaNegociacoes = new ListaNegociacoes(function(){
            // contexto errado
            this._negociacoesView.update(this._listaNegociacoes);
        });

temos um problema onde o contexto que chama o update não funciona, uma vez que o this não tem _negociacoesView.

Desta forma, a atividade aponta para usar Arrow function a qual utiliza o contexto correto (desta forma não precisamos usar a Reflect API.

NOTA: Já tinha visto em alguns projetos open source o uso de : var that = this o qual tambem corrige o problema. Apenas fazendo nota aqui como referencia.

class NegociacaoController {

    constructor(data, quantidade, valor) {
        var that = this;
        this._listaNegociacoes = new ListaNegociacoes(function() {
            // funciona legal
            that._negociacoesView.update(that._listaNegociacoes);
        });
2 respostas
solução!

Bom dia.

Eu mostro o uso dessa estratégia ao longo do curso, só que chamo de self e não that.

https://cursos.alura.com.br/course/javascript-es6-orientacao-a-objetos-parte-2/task/17458

Talvez você tenha pulado essa parte. Sugiro fazer os exercícios e ler as explicações extras, tem muita coisa lega lá.

Sucesso e bom estudo meu aluno.

Obrigado!

Realmente, após eu postar a dúvida, na atividade seguinte você abordou o assunto!

Valeu

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