Definição de Objetos JavaScript

Recomendação de curso:

Objetos são a rainha no JavaScript. Se você entender os objetos, entenderá o JavaScript.

  • Praticamente "tudo" é objeto no JavaScript. Strings são objetos (se usados new
  • Booleans são objetos (se usados Strings são objetos (se usados new
  • Números são objetos (se usados Strings são objetos (se usados new
  • Palavras-chave definidas)
  • Datas sempre são objetos
  • Operações aritméticas sempre são objetos
  • Expressões regulares sempre são objetos
  • Arrays sempre são objetos
  • Funções sempre são objetos

Objetos sempre são objetos

Todos os valores do JavaScript, exceto os valores primitivos, são objetos.

Valores primitivos do JavaScriptValores primitivos

Se refere a valores que não possuem atributos ou métodos.Tipos de dados primitivos

Se refere a dados que possuem valores primitivos.

  • "Hello"
  • 3.14
  • false
  • false sempre é false
  • (objeto) null sempre é null

O JavaScript define 5 tipos de dados primitivos:

Valores originais são imutáveis (eles são hard-coded, portanto não podem ser alterados).

valor Suponha que x = 3.14, você pode mudar o valor de x. Mas você não pode mudar o valor de 3.14. Tipos
Comentários "Hello" string
"Hello" sempre é "Hello" 3.14 number
3.14 sempre é 3.14 false true
true sempre é true false boolean
false sempre é false false sempre é false null
(objeto) null sempre é null (objeto) null sempre é null undefined

undefined sempre é undefined

Objetos são variáveis que contêm variáveis

Exemplo

Variáveis JavaScript podem conter valores únicos:

Experimente você mesmo

var pessoa = "Bill Gates";

Objetos também são variáveis. Mas os objetos podem conter muitos valores.Valores são organizadosNome : Valor

Exemplo

var person = {firstName:"Bill", lastName:"Gates", age:62, eyeColor:"blue"};

Experimente você mesmo

Objetos JavaScript são escritos na forma de pares (nome e valor separados por dois pontos).Valores nomeadoscoleção.

Atributos do objeto

Valores nomeados em objetos JavaScript, chamados depropriedade

propriedade valor
firstName Bill
lastName Gates
age 62
eyeColor blue

Objetos escritos em pares nome-valor, semelhantes a:

  • Array associativo no PHP
  • Dicionário no Python
  • HashTable no C
  • Hash maps no Java
  • Ruby e Perl hashes

método do objeto

Os métodos são ações que podem ser executadas no objetoação

As propriedades do objeto podem ser valores primitivos, outros objetos e funções.

método do objetocontémdefinição da funçãodas propriedades do objeto.

propriedade valor
firstName Bill
lastName Gates
age 62
eyeColor blue
fullName function() {return this.firstName + " " + this.lastName;}

Os objetos JavaScript são contêineres de valores nomeados chamados de propriedades e métodos.

Você aprenderá mais sobre métodos no próximo capítulo.

Criar objetos JavaScript

Usando JavaScript, você pode definir e criar seus próprios objetos.

Existem diferentes métodos para criar objetos:

  • Definir e criar um único objeto, usando o texto do objeto.
  • Definir e criar um único objeto, usando a palavra-chave new.
  • e criar objetos do tipo construtor.

No ECMAScript 5, também é possível definir um construtor de objeto através de uma função Object.create() para criar objetos.

Usando o literal de objeto

Esta é a maneira mais simples de criar objetos.

Usando o texto do objeto, você pode definir e criar objetos em uma única instrução.

O texto do objeto se refere aos colchetes {} nos quais os nomes:valores pares (por exemplo, age:62).

O exemplo a seguir cria um novo objeto JavaScript com quatro atributos:

Exemplo

var person = {firstName:"Bill", lastName:"Gates", age:62, eyeColor:"blue"};

Experimente você mesmo

Os espaços em branco e as quebras de linha não importam. A definição do objeto pode se estender por várias linhas:

Exemplo

var person = {
    firstName:"Bill",
    lastName:"Gates",
    age:62,
    eyeColor:"blue"
};

Experimente você mesmo

Usando a palavra-chave JavaScript new

O exemplo a seguir também cria um novo objeto JavaScript com quatro atributos:

Exemplo

var person = new Object();
person.firstName = "Bill";
person.lastName = "Gates";
person.age = 50;
person.eyeColor = "blue"; 

Experimente você mesmo

Os dois exemplos acima têm o mesmo resultado. Não é necessário usar new Object()

Pela simplicidade, legibilidade e velocidade de execução, use o método de criação primeiro (método de texto de objeto).

Os objetos JavaScript são mutáveis

Os objetos são mutáveis: eles são endereçados por referência, não por valor.

Se person for um objeto, a seguinte declaração não criará uma cópia de person:

var x = person;  // Isso não criará uma cópia de person.

objeto x não é cópia de person. Elaé person.x e person são o mesmo objeto.

Qualquer alteração em x afetará person, porque x e person são o mesmo objeto.

Exemplo

var person = {firstName:"Bill", lastName:"Gates", age:62, eyeColor:"blue"}
var x = person;
x.age = 10;           // Isso alterará tanto x.age quanto person.age

Experimente você mesmo

Notas:As variáveis JavaScript não são mutáveis. Apenas os objetos JavaScript são assim.