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

Uncaught TypeError: modelo.valor is not a function

O navegador não consegue interpretar os métodos da classe Negociação

class Negociacao {

    constructor(data, quantidade, valor) {


        this._data = new Date(data.getTime());
        this._quantidade = quantidade;
        this._valor = valor;
        Object.freeze(this);
    }

    get volume() {

        return this._quantidade * this._valor;
    }

    get data() {
        return new Date(this._data.getTime());
    }

    get quantidade() {
        return this._quantidade;
    }

    get valor() {
        return this._valor;
    }
}

e no index.html

<script src="js/app/models/Negociacao.js"></script>
    <script>
        var modelo = new Negociacao(new Date(), 500, 700);
        console.log(modelo.valor());
    </script>

Segue o erro: index.html:64 Uncaught TypeError: modelo.valor is not a function at index.html:64

2 respostas
solução!

Ele não retorna pois na implementação do index.html, você está chamando um método modelo.valor(), sendo que esse método [...].valor() é um getter, portanto, assim que você retirar a chamada da função, ele deverá funcionar, devendo ficar assim:

<script src="js/app/models/Negociacao.js"></script>
    <script>
        var modelo = new Negociacao(new Date(), 500, 700);
        console.log(modelo.valor); // ALTERAÇÃO AQUI
    </script>

Caso ainda possuir alguma dúvida, favor deixe nos comentários e boas aulas. :)

Perfeito Yuri. Não há problema nenhum com o navegador, apenas um pequeno equívoco no conceito de getter. Acontece.

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