Definizione degli oggetti JavaScript

In JavaScript, gli oggetti sono i re. Se capisci gli oggetti, capisci JavaScript.

In JavaScript, quasi "tutto" è un oggetto.

  • I booleani sono oggetti (se usati new (definizione di parole chiave)
  • I numeri sono oggetti (se usati new (definizione di parole chiave)
  • Le stringhe sono oggetti (se usate new (definizione di parole chiave)
  • Le date sono sempre oggetti
  • Le operazioni aritmetiche sono sempre oggetti
  • Le espressioni regolari sono sempre oggetti
  • Gli array sono sempre oggetti
  • Le funzioni sono sempre oggetti
  • Gli oggetti sono sempre oggetti

Tutti i valori JavaScript, tranne i valori originali, sono oggetti.

Valori originali JavaScript

Valori originalisi riferisce ai valori che non hanno proprietà o metodi.

Tipi di dati originalisi riferisce ai dati che hanno un valore originale.

JavaScript ha definito 5 tipi di dati originali:

  • stringa
  • numero
  • booleano
  • null
  • undefined

I valori originali sono invariabili (sono codificati in modo fisso, quindi non possono essere modificati).

Supponiamo che x = 3.14, puoi cambiare il valore di x. Ma non puoi cambiare il valore di 3.14.

Tipo Commenti
"Hello" stringa "Hello" è sempre "Hello"
3.14 numero 3.14 è sempre 3.14
true booleano true è sempre true
false booleano false è sempre false
null null (oggetto) null è sempre null
undefined undefined undefined è sempre undefined

Gli oggetti sono variabili che contengono variabili

Le variabili JavaScript possono contenere valori singoli:

Esempio

var person = "Bill Gates";

Prova a fare tu stesso

Gli oggetti sono anche variabili. Ma gli oggetti possono contenere molti valori.

I valori seguonoNome : Valoreforma di nome: valore (separati da due punti).

Esempio

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

Prova a fare tu stesso

Gli oggetti JavaScript sono scritti sotto forma diValori nominatiinsieme.

Proprietà dell'oggetto

Valori nominati negli oggetti JavaScript, detti属性

属性
firstName Bill
lastName Gates
age 62
eyeColor blue

Oggetti scritti come nome-valore, simili a:

  • Array associativo in PHP
  • Dizionario in Python
  • C 中的哈希表
  • Java 中的哈希映射
  • Ruby 和 Perl 中的散列

对象方法

方法是可以在对象上执行的动作

对象属性可以是原始值、其他对象以及函数。

对象方法是包含函数定义的对象属性。

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

JavaScript 对象是被称为属性和方法的命名值的容器。

您将在下一章中学到更多有关方法的知识。

创建 JavaScript 对象

通过 JavaScript,您能够定义和创建自己的对象。

有不同的方法来创建对象:

  • 定义和创建单个对象,使用对象文字。
  • 定义和创建单个对象,通过关键词 new。
  • 定义对象构造器,然后创建构造类型的对象。

在 ECMAScript 5 中,也可以通过函数 Object.create() 来创建对象。

使用对象字面量

这是创建对象最简答的方法。

使用对象文字,您可以在一条语句中定义和创建对象。

对象文字指的是花括号 {} 中的名称:值对(比如 age:62)。

下面的例子创建带有四个属性的新的 JavaScript 对象:

Esempio

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

Prova a fare tu stesso

空格和折行不重要。对象定义可横跨多行:

Esempio

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

Prova a fare tu stesso

使用 JavaScript 关键词 new

下面的例子也创建了带有四个属性的新的 JavaScript 对象:

Esempio

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

Prova a fare tu stesso

上面的两个例子结果是一样的。无需使用 new Object()

Per semplicità, leggibilità e velocità di esecuzione, utilizzare il primo metodo di creazione (metodo di testo degli oggetti).

Gli oggetti JavaScript sono mutabili

Gli oggetti sono mutabili: vengono indirizzati tramite riferimento, non tramite valore.

Se person è un oggetto, le seguenti istruzioni non creeranno una copia di person:

var x = person;  // Questo non creerà una copia di person.

oggetto x non copia di person. Èè person.x e person sono lo stesso oggetto.

Qualsiasi modifica a x avrà conseguenze su person, perché x e person sono lo stesso oggetto.

Esempio

var person = {firstName:"Bill", lastName:"Gates", age:62, eyeColor:"blue"}
var x = person;
x.age = 10;           // Questo cambierà contemporaneamente sia x.age che person.age

Prova a fare tu stesso

Nota:Le variabili JavaScript non sono mutabili. Solo gli oggetti JavaScript lo sono.