Objetos JavaScript
Em JavaScript, os objetos são reis. Se você entende objetos, você entende JavaScript.
Em JavaScript, quase "tudo" é um objeto.
- Booleanos podem ser objetos (se definidos com a palavra-
new
chave) - Os números podem ser objetos (se definidos com a palavra-
new
chave) - Strings podem ser objetos (se definidos com a palavra-
new
chave) - Datas são sempre objetos
- Matemática são sempre objetos
- Expressões regulares são sempre objetos
- Arrays são sempre objetos
- Funções são sempre objetos
- Objetos são sempre objetos
Todos os valores JavaScript, exceto primitivos, são objetos.
Primitivos JavaScript
Um valor primitivo é um valor que não possui propriedades ou métodos.
Um tipo de dados primitivo são dados que têm um valor primitivo.
JavaScript define 5 tipos de tipos de dados primitivos:
string
number
boolean
null
undefined
Os valores primitivos são imutáveis (eles são codificados e, portanto, não podem ser alterados).
se x = 3,14, você pode alterar o valor de x. Mas você não pode alterar o valor de 3,14.
Valor | Modelo | Comente |
---|---|---|
"Olá" | corda | "Olá" é sempre "Olá" |
3.14 | número | 3,14 é sempre 3,14 |
verdadeiro | boleano | verdade é sempre verdade |
falso | boleano | falso é sempre falso |
nulo | null (objeto) | null é sempre null |
Indefinido | Indefinido | indefinido é sempre indefinido |
Objetos são variáveis
As variáveis JavaScript podem conter valores únicos:
Exemplo
let person = "John Doe";
As variáveis JavaScript também podem conter muitos valores.
Objetos também são variáveis. Mas os objetos podem conter muitos valores.
Os valores do objeto são escritos como pares name : value (nome e valor separados por dois pontos).
Exemplo
let person = {firstName:"John", lastName:"Doe", age:50, eyeColor:"blue"};
Um objeto JavaScript é uma coleção de valores nomeados
É uma prática comum declarar objetos com a palavra- const
chave.
Exemplo
const person = {firstName:"John", lastName:"Doe", age:50, eyeColor:"blue"};
Propriedades do objeto
Os valores nomeados, em objetos JavaScript, são chamados de propriedades .
Propriedade | Valor |
---|---|
primeiro nome | John |
último nome | Corça |
era | 50 |
cor dos olhos | azul |
Objetos escritos como pares de valor de nome são semelhantes a:
- Arrays associativos em PHP
- Dicionários em Python
- Tabelas de hash em C
- Mapas de hash em Java
- Hashes em Ruby e Perl
Métodos de objeto
Métodos são ações que podem ser executadas em objetos.
As propriedades do objeto podem ser valores primitivos, outros objetos e funções.
Um método de objeto é uma propriedade de objeto que contém uma definição de função .
Propriedade | Valor |
---|---|
primeiro nome | John |
último nome | Corça |
era | 50 |
cor dos olhos | azul |
nome completo | function() {return this.firstName + " " + this.lastName;} |
Objetos JavaScript são contêineres para valores nomeados, chamados propriedades e métodos.
Você aprenderá mais sobre métodos nos próximos capítulos.
Criando um objeto JavaScript
Com JavaScript, você pode definir e criar seus próprios objetos.
Existem diferentes maneiras de criar novos objetos:
- Crie um único objeto, usando um literal de objeto.
- Crie um único objeto, com a palavra-chave
new
. - Defina um construtor de objeto e, em seguida, crie objetos do tipo construído.
- Crie um objeto usando
Object.create()
.
Usando um literal de objeto
Esta é a maneira mais fácil de criar um objeto JavaScript.
Usando um literal de objeto, você define e cria um objeto em uma instrução.
Um literal de objeto é uma lista de pares nome:valor (como idade:50) dentro de chaves {}.
O exemplo a seguir cria um novo objeto JavaScript com quatro propriedades:
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"
};
Este exemplo cria um objeto JavaScript vazio e adiciona 4 propriedades:
Exemplo
const person = {};
person.firstName = "John";
person.lastName = "Doe";
person.age = 50;
person.eyeColor = "blue";
Usando a palavra-chave JavaScript new
O exemplo a seguir cria um novo objeto JavaScript usando new Object()
e adiciona 4 propriedades:
Exemplo
const person = new Object();
person.firstName = "John";
person.lastName = "Doe";
person.age = 50;
person.eyeColor = "blue";
Os exemplos acima fazem exatamente o mesmo.
Mas não há necessidade de usar new Object()
.
Para legibilidade, simplicidade e velocidade de execução, use o método literal de objeto.
Objetos JavaScript são mutáveis
Objetos são mutáveis: eles são endereçados por referência, não por valor.
Se pessoa for um objeto, a seguinte declaração não criará uma cópia de pessoa:
const x = person; // Will not create a copy of person.
O objeto x não é uma cópia de pessoa. É pessoa . Tanto x quanto pessoa são o mesmo objeto.
Quaisquer mudanças em x também mudarão de pessoa, porque x e pessoa são o mesmo objeto.
Exemplo
const person = {
firstName:"John",
lastName:"Doe",
age:50, eyeColor:"blue"
}
const x = person;
x.age = 10; // Will change both x.age and person.age