2
respostas

Não compreendi a declaração da função exibirNomeCompleto()

Dentro os exemplos da aula, há um que utiliza a função exibirNomeCompleto(), no entanto, não entendi porque ela é declarada sem a palavra reservada function:

class Pessoa {
    constructor(nome, sobrenome, cpf, email) {
        this.nome = nome
        this.sobrenome = sobrenome
        this.cpf = cpf
        this.email = email
    }

    exibirNomeCompleto() {
        console.log(` ${this.nome} ${this.sobrenome}`)
    }

}
2 respostas

Eu testei as 2 formas. Dentro da constante ambos funcionam (teste o código abaixo, ele funciona com as 2 formas de escrever a função). Porém, dentro da classe, somente a primeira forma funciona:

const cliente = {
    nome: 'Andre',
    idade: 36,
    saldo:100,
// primeira forma
    depositar(valor){
        this.saldo += valor
    }
// segunda forma
//     depositar:function(valor){      
//         this.saldo += valor
//       }

  }

  console.log(cliente.saldo)      // 100
  cliente.depositar(30)
  console.log(cliente.saldo)       // 130

Neste segundo exemplo, da Classe, só funciona a primeira forma da função (teste):

class Cliente {
    constructor(nome,idade,saldo){
     this.nome = nome
     this.idade = idade
     this.saldo = saldo
    }
// primeira forma  
    depositar(valor){
        this.saldo += valor
    }

// segunda forma
    // depositar: function(valor){
    //     this.saldo += valor
    // }

    exibirSaldo(){
        console.log(this.saldo)
    }
  }

  const andre = new Cliente("Andre", 36, 100)
  console.log(andre)

  andre.depositar(50)
  console.log(andre)

O seu código funciona bem. É só acrescentar dados:

const maria = new Pessoa ("Maria","da Penha", "12345678901", "maria@penha.com.br")
console.log(maria)

Resultado: Pessoa { nome: 'Maria', sobrenome: 'da Penha', cpf: '12345678901', email: 'maria@penha.com.br' }

Boa tarde, colega.

Em classes essa "função" é chamada de método e portanto não é utilizada a palavra chave function pra criá-la.

Espero ter ajudado!

Abraço.