4
respostas

atividade 24 - classe

Bom dia. Nesta atividade é descrito a função date mas o exemplo não é relacionado a Date , fiquei confuso poderia por favor verificar ou me mandar um exemplo com date ? nos dois códigos usa-se sintaxes diferentes acredito que por ser variações do Ecman Script certo ? poderia explicar também o $ pois numa resosta vi que ele refere-se a string que fazem interpolação e entendo que ele substitui a variável implícita this, mas nos códigos apresetnados usa-se o $ e o this junto . e o prototype o que é ?? Obrigado.

class Pessoa {
    constructor(nome, sobrenome) {
        this.nome = nome;
        this.sobrenome = sobrenome;
    }
    obterNomeCompleto() {
        return `${this.nome} ${this.sobrenome}`;
    }
}insira seu código aqui
function Pessoa(nome, sobrenome) {
    this.nome = nome;
    this.sobrenome = sobrenome;
}
Pessoa.prototype.obterNomeCompleto = function() {
    return this.nome + ' ' + this.sobrenome;
};
4 respostas

Bom dai o simbolo $ descrito no código refere-se a jquery ?

Oi Jorge, tudo bem? Perdoe a demora para te responder.

O sinal de $ refere-se a uma funcionalidade do javascript chamada template strings, uma outra forma de concatenar variáveis na nossa string! Não se refere ao JQuery nesse caso!

Veja o exemplo abaixo, sem essa funcionalidade:

var nome = 'Giovanna';
var idade = 20;
console.log('Olá, meu nome é ' + nome + ', eu tenho ' + idade + ' anos.');

Veja que se tivermos muitas variáveis, podemos nos perder nesse monte de aspas e sinal de soma hahahah

Agora, com o uso do template string, nós usamos o acento grave em vez de aspas simples/duplas, além do uso de $ e parênteses para usar a variável:

var nome = 'Giovanna';
var idade = 20;
console.log(`Olá, meu nome é ${nome}, eu tenho ${idade} anos.`);

Bem mais fácil dessa forma, né?

Espero ter ajudado, bons estudos!

Muito obrigado, poire responder e quanto ao Protoyype ??

Oi Jorge!

Todo objeto em Javascript possui um protótipo (prototype), que permite modificar esse objeto, criando novas propriedades ou métodos, por exemplo.

Vamos imaginar que temos uma classe chamada User e estamos instanciando dois novos objetos:

class User {
   constructor() {
       this.nome = 'Leonardo';
       this.profissao = 'Desenvolvedor';
     }
}

const user1 = new User();
user1.idade = 22;
console.log(user1.idade); // irá retornar 22

const user2 = new User();
console.log(user2.idade); // undefined

Veja que o usuário 1 possui a propriedade idade, pois adicionamos diretamente no objeto user1, porém o usuário 2 não possui essa idade definida, por isso retorna undefined. Mas, como podemos adicionar essa propriedade idade na nossa classe, para que todas as instâncias possuem essa propriedade? Através do prototype, veja abaixo:

class User {
   constructor() {
       this.nome = 'Leonardo';
       this.profissao = 'Desenvolvedor';
     }
}

User.prototype.idade = 22;

const user1 = new User();
console.log(user1.idade); // irá retornar 22

const user2 = new User();
console.log(user2.idade); // irá retornar 22 também

Agora, nós adicionamos uma propriedade à classe "User" através do prototype, fazendo com que todas as instâncias dessa classe receba também essa propriedade.

Espero ter ajudado, bons estudos =)