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

Dúvida Javascript

Usando o código informado no curso não funcionou.

<script>

    var n1 = new Negociacao(new Date(), 5, 700);

    console.log(n1.data); 

    n1.data.setDate(11);   
 <!-- 
Usando essa sintaxe está apresentando o erro:
index.html:65 Uncaught TypeError: Cannot read property 'setDate' of undefined
 -->
    console.log(n1.data);
</script>

Tive que usar da seguinte forma:

    <script>
        var n1 = new Negociacao(new Date,5,700);
        console.log(n1.Data);
        n1.Data.setDate(11);
        console.log(n1.Data);
    </script>

Esse é um erro no código?

7 respostas

Oi Elton, tudo bem? Esse Data, ele não é pra ser minusculo?

n1.data.setDate(11);
solução!

Isso mesmo Wanderson.

Elton, você criou a propriedade na classe como Data, e propriedades começam com minúscula. Foi erro de digitação. Por isso só funcionou quando você fez n1.Data.setDate(11);, porque já na classe criou como Data. No curso informo que o atributo é data e Data.

Toda vez que um erro acontecer em JavaScript, a linha do erro é apresentada.

Como você compartilhou corretamente a linha do erro temos:

index.html:65 Uncaught TypeError: Cannot read property 'setDate' of undefined

Ele indica que há um problema na linha 65.

Ai vem a dica, toda vez que ele diz 'undefined` em alguma mensagem de erro, é porque você esta acessando uma variável ou propriedade de objeto que não existe. Dai, consegue ver olhando na linha do erro onde errou na digitação.

Esse traquejo você pega ao longo dos curso de lógica de programação e JavaScript.

Aliás, meu aluno, tenho uma boa notícia para você.

O curso de JavScript que você fez foi regravado, sendo assim, o novo curso o preparará ainda melhor para este curso avançado.

Confira o endereço do novo curso que esta dando o que falar na Alura:

https://www.alura.com.br/curso-online-javascript-programando-na-linguagem-web

Talvez seja interessante fazer esse curso antes de continuar com o avançado. Pedi para que o instrutor desse novo curso preparasse ainda melhor o aluno para os cursos avançados.

Caso já tenha feito o novo curso, tranquilo. Continue com sua jornada no curso avançado.

Oi Elton! Conseguiu alinhar o código? Aguardamos seu retorno!

Sim, consegui.

Outra dúvida, no caso de validação dos dados de um cadastro, a validação deve ser feito na classe controler ou na classe modelo?

Pode ser feita nos dois, no entanto, o mais recomendado é no modelo. Vou explicar o motivo. Se agora você não quer mais usar a estrutura do nosso mini framework, mas quer reaproveitar seu modelo, por exemplo, em um framework como Vue.js?

Se a regra de validação fica no modelo, para onde você levar o modelo a regra irá junto. Nada o impede de criar um método isValid() em seu modelo para saber se este está íntegro ou não.

Obrigado pelas explicações.

Disponha meu aluno! Sucesso e bom estudo!