Objetos JavaScript
Objetos, propriedades e métodos da vida real
Na vida real, um carro é um objeto .
Um carro tem propriedades como peso e cor, e métodos como iniciar e parar:
Objeto | Propriedades | Métodos |
---|---|---|
car.name = Fiat car.model = 500 car.weight = 850kg car.color = branco |
car.start() car.drive() car.brake() car.stop() |
Todos os carros têm as mesmas propriedades , mas os valores das propriedades diferem de carro para carro.
Todos os carros têm os mesmos métodos , mas os métodos são executados em momentos diferentes .
Objetos JavaScript
Você já aprendeu que as variáveis JavaScript são contêineres para valores de dados.
Este código atribui um valor simples (Fiat) a uma variável chamada car:
let car = "Fiat";
Objetos também são variáveis. Mas os objetos podem conter muitos valores.
Este código atribui muitos valores (Fiat, 500, branco) a uma variável chamada car:
const car = {type:"Fiat", model:"500", color:"white"};
Os valores são escritos como pares nome:valor (nome e valor separados por dois pontos).
É uma prática comum declarar objetos com a palavra-chave const .
Saiba mais sobre como usar const com objetos no capítulo: JS Const .
Definição do objeto
Você define (e cria) um objeto JavaScript com um literal de objeto:
Exemplo
const person = {firstName:"John", lastName:"Doe", age:50, eyeColor:"blue"};
Espaços e quebras de linha não são importantes. Uma definição de objeto pode abranger várias linhas:
Exemplo
const person = {
firstName: "John",
lastName: "Doe",
age: 50,
eyeColor: "blue"
};
Propriedades do objeto
Os pares name:values em objetos JavaScript são chamados de propriedades :
Propriedade | Valor da propriedade |
---|---|
primeiro nome | John |
último nome | Corça |
era | 50 |
cor dos olhos | azul |
Acessando Propriedades do Objeto
Você pode acessar as propriedades do objeto de duas maneiras:
objectName.propertyName
ou
objectName["propertyName"]
Exemplo 1
person.lastName;
Exemplo2
person["lastName"];
Objetos JavaScript são contêineres para valores nomeados chamados propriedades.
Métodos de objeto
Objetos também podem ter métodos .
Métodos são ações que podem ser executadas em objetos.
Os métodos são armazenados em propriedades como definições de função .
Propriedade | Valor da propriedade |
---|---|
primeiro nome | John |
último nome | Corça |
era | 50 |
cor dos olhos | azul |
nome completo | function() {return this.firstName + " " + this.lastName;} |
Um método é uma função armazenada como uma propriedade.
Exemplo
const person = {
firstName: "John",
lastName : "Doe",
id : 5566,
fullName : function() {
return this.firstName + " " + this.lastName;
}
};
A palavra- chave esta
Em uma definição de função, this
refere-se ao "proprietário" da função.
No exemplo acima, this
é o objeto pessoa que "possui" a
fullName
função.
Em outras palavras, this.firstName
significa a firstName
propriedade deste objeto .
Leia mais sobre a this
palavra-chave em JS this Keyword .
Acessando métodos de objeto
Você acessa um método de objeto com a seguinte sintaxe:
objectName.methodName()
Exemplo
name = person.fullName();
Se você acessar um método sem os parênteses (), ele retornará a definição da função :
Exemplo
name = person.fullName;
Não declare strings, números e booleanos como objetos!
Quando uma variável JavaScript é declarada com a palavra-chave " new
", a variável é criada como um objeto:
x = new String(); // Declares x as a String object
y = new Number(); // Declares y as a Number object
z = new Boolean(); // Declares z as a Boolean object
Evite String
, Number
, e Boolean
objetos. Eles complicam seu código e diminuem a velocidade de execução.
Você aprenderá mais sobre objetos posteriormente neste tutorial.