tutoriais mais recente desenvolvimento web
 

JavaScript objetos


JavaScript Objects

Em JavaScript, os objetos são rei. Se você entender objetos, você entende JavaScript.

Em JavaScript, quase "tudo" é um objeto.

  • Booleans podem ser objetos (ou dados primitivos tratados como objetos)
  • Numbers podem ser objetos (ou dados primitivos tratados como objetos)
  • Strings podem ser objetos (ou dados primitivos tratados como objetos)
  • Dates são sempre objetos
  • Maths são sempre objetos
  • Regular expressões são sempre objetos
  • Arrays são sempre objetos
  • Functions são sempre objetos
  • Objects são objetos

Em JavaScript, todos os valores, exceto valores primitivos, são objetos.

Valores primitivos são: cordas ("John Doe") , números (3.14), true, false, null e undefined .


Objetos são variáveis ​​contendo Variáveis

variáveis ​​JavaScript pode conter valores individuais:

Exemplo

var person = "John Doe";
Tente você mesmo "

Objetos são variáveis ​​também. Mas os objetos podem conter muitos valores.

Os valores são escritos como nome: valor pares (nome e valor separados por dois pontos).

Exemplo

var person = {firstName:"John", lastName:"Doe", age:50, eyeColor:"blue"};
Tente você mesmo "

Um objeto JavaScript é um conjunto de valores nomeados


Propriedades do objeto

Os valores nomeados, em objetos JavaScript, são chamados de propriedades.

Propriedade Valor
firstName John
lastName Doe
age 50
eyeColor blue

Objetos escritos como pares de valores de nomes são semelhantes:

  • arrays associativos em PHP
  • Dicionários em Python
  • As tabelas de hash em C
  • mapas hash em Java
  • Hashes em Ruby e Perl

Métodos de objeto

Os métodos são ações que podem ser executadas em objetos.

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

Um método de objeto é uma propriedade do objeto que contém uma definição de função.

Propriedade Valor
firstName John
lastName Doe
age 50
eyeColor blue
fullName function() {return this.firstName + " " + this.lastName;}

objetos JavaScript são recipientes para valores nomeados, chamados propriedades e métodos.

Você vai 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 maneiras diferentes para criar novos objetos:

  • Definir e criar um único objeto, usando um objeto literal.
  • Definir e criar um único objeto, com a palavra chave nova.
  • Definir um construtor do objeto, em seguida, criar objetos do tipo construído.

Em ECMAScript 5, um objecto pode também ser criado com a função Object.create() .


Usando um Objeto Literal

Esta é a maneira mais fácil de criar um objeto de JavaScript.

Usando um objeto literal, você quer definir e criar um objeto em um comunicado.

Um literal de objeto é uma lista de pares nome: valor (como age:50 ) dentro de chaves {} .

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

Exemplo

var person = {firstName:"John", lastName:"Doe", age:50, eyeColor:"blue"};
Tente você mesmo "

Espaços e quebras de linha não são importantes. Uma definição de objeto pode ocupar várias linhas:

Exemplo

var person = {
    firstName:"John",
    lastName:"Doe",
    age:50,
    eyeColor:"blue"
};
Tente você mesmo "

Usando o novo JavaScript Keyword

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

Exemplo

var person = new Object();
person.firstName = "John";
person.lastName = "Doe";
person.age = 50;
person.eyeColor = "blue";
Tente você mesmo "

Os dois exemplos acima fazem exatamente a mesma. Não há necessidade de usar new Object() .
Por simplicidade, legibilidade e velocidade de execução, use o primeiro (o método literal de objeto).


Usando um construtor do objeto

Os exemplos acima são limitados em muitas situações. Eles só criar um único objeto.

Às vezes a gente gostaria de ter um "tipo de objeto" que pode ser usado para criar muitos objetos de um tipo.

A maneira padrão para criar um "tipo de objeto" é a utilização de uma função de objeto construtor:

Exemplo

function person(first, last, age, eye) {
    this.firstName = first;
    this.lastName = last;
    this.age = age;
    this.eyeColor = eye;
}
var myFather = new person("John", "Doe", 50, "blue");
var myMother = new person("Sally", "Rally", 48, "green");
Tente você mesmo "

A função acima (pessoa) é um construtor do objeto.

Depois de ter um construtor do objeto, você pode criar novos objetos do mesmo tipo:

var myFather = new person("John", "Doe", 50, "blue");
var myMother = new person("Sally", "Rally", 48, "green");

A this palavra-chave

Em JavaScript, a coisa chamada this , é o objeto que "possui" o código JavaScript.

O valor de this , quando utilizado em uma função, é o objecto que "possui" a função.

O valor de this , quando usado num objecto, o objecto é em si.

A this palavra-chave em um construtor de objeto não tem um valor. É apenas um substituto para o novo objeto.

O valor de this se tornará o novo objeto quando o construtor é usado para criar um objeto.

Note-se que esta não é uma variável. É uma palavra-chave. Você não pode alterar o valor do this .


Built-in JavaScript Construtores

JavaScript tem construtores internos para objetos nativos:

Exemplo

var x1 = new Object();    // A new Object object
var x2 = new String();    // A new String object
var x3 = new Number();    // A new Number object
var x4 = new Boolean()    // A new Boolean object
var x5 = new Array();     // A new Array object
var x6 = new RegExp();    // A new RegExp object
var x7 = new Function();  // A new Function object
var x8 = new Date();      // A new Date object
Tente você mesmo "

O Math() objeto não está na lista. Math é um objeto global. A nova palavra-chave não pode ser usado em matemática.

Você sabia?

Como você pode ver, JavaScript tem objeto versões dos tipos de dados primitivos String, número e booleanas.

Não há nenhuma razão para criar objetos complexos. valores primitivos executar muito mais rápido.

E não há razão para usar nova Array() . Use literais de matriz em vez disso: []

E não há razão para usar nova RegExp() . Use literais padrão em vez disso: /()/

E não há razão para usar a nova Function() . Use expressões de função em vez disso: function () {} .

E não há razão para usar new Object() . Use literais de objeto em vez disso: {}

Exemplo

var x1 = {};            // new object
var x2 = "";            // new primitive string
var x3 = 0;             // new primitive number
var x4 = false;         // new primitive boolean
var x5 = [];            // new array object
var x6 = /()/           // new regexp object
var x7 = function(){};  // new function object
Tente você mesmo "

JavaScript objetos são mutáveis

Objetos são mutáveis: Eles são abordados por referência, não por valor.

Se y é um objeto, a seguinte instrução não vai criar uma cópia de y:

var x = y;  // This will not create a copy of y.

O objeto x não é uma cópia do y. É y. X e Y aponta para o mesmo objeto.

Quaisquer alterações à y também mudará x, porque x e y são o mesmo objeto.

Exemplo

var person = {firstName:"John", lastName:"Doe", age:50, eyeColor:"blue"}

var x = person;
x.age = 10;           // This will change both x.age and person.age
Tente você mesmo "