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

"Não é uma função"

Estou tentando chamar um metodo NewDate através de uma variavel, defini um construtor para que pudesse invoca-lo sempre que precisasse. Mas quando vou chama-lo na função "adiciona", o console me retorna que não é uma função.

"helper.textoParaData is not a function"

class NegociacaoController {

constructor() {

    let $ = document.querySelector.bind(document);
    this._inputQuantidade = $('#quantidade');
    this._inputData = $('#data');
    this._inputValor = $('#valor');
}

adiciona(event) {

    event.preventDefault(event);

    let helper = new DateHelper();
    let helper2 = new DateHelper();

    let negociacao = new Negociacao(
        helper.textoParaData(this._inputData.value),
        this._inputQuantidade.value,
        this._inputValor.value
    );

    console.log(negociacao);
    console.log(helper.dataParaTexto(negociacao.data)); > Retorna que não é uma função no console do navegador

}

}

classe datehelper

class DateHelper{ static dataParaTexto(data) { return data.getDate()

        + '/' + (data.getMonth() + 1)
        + '/' + data.getFullYear();
}

static textoParaData(texto) {
    return new Date(...texto.split('-').map((item,indice) => item - indice % 2));
}

}

2 respostas

Oi Wellington tudo bem?

Poderia, por gentileza, colocar a pasta do seu projeto no github. Dessa forma podemos analisar melhor o que está acontecendo.

solução!

Boa noite, Wellington! Como vai?

Esse problema está ocorrendo pq o seu método textoParaData() foi definido como estático! Então, a forma correta de invocá-lo é:

DateHelper.textoParaData()

Sem a necessidade de criar um objeto da classe DateHelper!

Pegou a ideia? Qualquer coisa é só falar!

Grande abraço e bons estudos, meu aluno!