Skip to content

Objects

Gabriel Fanto Stundner edited this page Apr 26, 2018 · 2 revisions
Retornar

Objetos em Javascript(Objects)

  • As variáveis de Javascript são contâiners para dados.
  • Objects são variáveis também mas podem conter vários dados ao mesmo tempo.
  • Um object é uma lista de dados que são armazenadas como nome:valor
  • Exemplo:
let pessoa = {
 nome:"Gabriel",idade:22,
 corFavorita:"Preto",altura:176
};

Propriedades dos Objects

  • Propriedades de um objeto são as informações que existem dentro dele
  • No exemplo passado temos como propriedades o nome,idade,cor Favorita e altura de uma pessoa
  • Podemos acessar essas informações de duas formas
//OPÇÃO 1
nomeObjeto.nomePropriedade;
//EXEMPLO
let pegarNome = pessoa.nome;

//OPÇÃO 2
nomeObjeto[´nomePropriedade´];
//EXEMPLO
let pegarIdade = pessoa[´idade´];

Chamando o tamanho de uma String

  • Podemos usar o método length para conseguir o tamanho da String
  • usamos esse método quando chamamos uma propriedade String de um Objeto
let pessoa = {nome:"Pedro"};
document.write(pessoa.nome.length);

Métodos de Objects

  • Um método de objeto é uma propriedade que contém a definição de uma função
  • Um exemplo que usamos bastante é o document.write(); que usamos para fazer output de informação
  • a função write() é na verdade um método do objeto document

Criando seus Próprios Objects

  • Na lição anterior, nós criamos um objeto com a sintaxe inicializadora do object
let pessoa = {
 nome:"John",idade:42,cor:"Preto"
};
//ou
let pessoa = {nome:"John",idade:42,cor:"Preto"};
  • Podemos criar um Object type para criarmos um número de objetos do mesmo tipo
  • Assim como no java , o Javascript possui funções construtoras de objetos
  • Exemplo de um construtor:
function pessoa(nome,idade,corFavorita){
 this.nome = nome;
 this.idade = idade;
 this.corFavorita = corFavorita;
}
  • O this serve para pegar os valores de entrada e colocar nas propriedades definidos dentro da função
  • todas as entradas e métodos de objetos de dentro da função devem ter esse this.
  • Agora tendo a função construtora de novos objetos, podemos iniciar novos objetos
//Função
function pessoa(nome,idade,cor){
 this.nome = nome;
 this.idade = idade;
 this.cor = cor;
}

//Iniciando novos objetos
let p1 = new pessoa("Pedro",21,"Vermelho");
let p2 = new pessoa("Gabriel",22,"Preto");

//saindo informações desejadas dos objetos
document.write(p1.nome); //sai o nome
document.write(p1.idade); //sai a idade
document.write(p1.cor); //sai a cor da informação

document.write(p2.nome);
document.write(p2.idade);
document.write(p2.cor);

Adicionando Métodos dentro de um Objeto

  • Métodos são funções que guardam as propriedades de um objeto
  • dentro da função construtora deve ter o this para dizer que o método é do construtor atual
  • Criamos um Objeto de método da seguinte forma:
//criando métodos de objeto dentro de um objeto normal
nomeMetodo:function(...){...}

//ou

nomeMetodo: function(...){
//linhas de código
}

//Se for uma função construtora fazermos da seguinte forma

this.nomeMetodo = function(...){...}

//ou

this.nomeMetodo = function(...){ 
  ...
}

//Para chamarmos o método, fazemos como abaixo:
nomeObjeto.nomeMetodo();
  • Criando um exemplo completo de como se faz:
//criando o método construtor com o método do objeto internamente
function pessoa(nome,idade,corFavorita){
 this.nome;
 this.idade;
 this.corFavorita;
 this.trocarNome = function(nome){
   this.nome = nome;
 }
}

//iniciando a função construtora de objetos em um objeto
let novo = new pessoa("Gabriel",22,"Preto");
document.write(novo.nome); //saida: Gabriel
novo.trocarNome("Pedro");
document.write(novo.nome); //saida: Pedro
  • Podemos criar o método do objeto fora do construtor
  • devemos usar o this na propriedade que desejamos pegar de dentro da função construtora
//pegando o exemplo anterior e usando essa nova forma
function pessoa(nome,idade,corFavorita){
 this.nome;
 this.idade;
 this.corFavorita;
 this.trocarNome = changeName; //ele vai chamar a função externa changeName
}
function changeName(nome){
 this.nome = nome;
}
  • Dependendo do método, podemos fazer a saida dele direto
  • Esses tipos de método só retornam um valor usando o return
function valores(valor1,valor2){
 this.valor1 = valor1;
 this.valor2 = valor2;
 this.somaValores = sum;
}
function sum(){
 return this.valor1 + this.valor2;
}
//teste das funções:
let valor1 = 2;
let valor2 = 3;
let novo = new valores(valor1,valor2);
document.write(novo.somaValores());
Clone this wiki locally