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

[Aula 3 - Vídeo 3] let this._variavel no contrutor

Porque não posso declarar as variaveis this._inputData, this._inputValor e this._inputQuantidade com let no construtor?

3 respostas
solução!

Se você está se referindo a isso:

class MinhaClasse{
    constructor(){
        let this._inputData = ...;
        let this._inputValor = ...;
        let this._inputQuantidade = ...;
    }
}

Você não pode fazer isso, pois o this se refere a instância (ou objeto) que foi criado, já que this no inglês significa este, no caso: este objeto.

(Na realidade é um pouco mais complexo que isso, mas pensar dessa forma ajuda bastante)

Então não faz sentido você usar o let ali, pois o this._inputData, this._inputValor , e o this._inputQuantidade não são variáveis locais do construtor, mas sim atributos do seu novo objeto.

O correto então seria:

class MinhaClasse{
    constructor(){
        this._inputData = ...;
        this._inputValor = ...;
        this._inputQuantidade = ...;
    }
}

Espero ter respondido sua dúvida.

Se você usar let não vai poder usar this. Se não usar this não terá acesso as propriedades nos métodos da classe. Se usar let as variáveis existirão dentro do construtor apenas. Isso é conceito de escopo que aprendemos quando estamos começando em JavaScript apesar de usarmos let, é a mesma coisa.

Valeu Flávio e Guilherme.