Gli ultimi tutorial di sviluppo web
 

JavaScript Oggetti


oggetti JavaScript

In JavaScript, gli oggetti sono re. Se si capisce oggetti, si capisce JavaScript.

In JavaScript, quasi "tutto" è un oggetto.

  • Booleans possono essere oggetti (o dati primitive trattati come oggetti)
  • Numbers possono essere oggetti (o dati primitive trattati come oggetti)
  • Strings possono essere oggetti (o dati primitive trattati come oggetti)
  • Dates sono oggetti sempre
  • Maths sono oggetti sempre
  • Regular espressioni sono oggetti sempre
  • Arrays sono oggetti sempre
  • Functions sono oggetti sempre
  • Objects sono oggetti

In JavaScript, tutti i valori, ad eccezione di valori primitivi, sono oggetti.

I valori primitivi sono: stringhe ("John Doe") , i numeri (3.14), true, false, null , e undefined .


Gli oggetti sono variabili contenente le variabili

variabili JavaScript possono contenere valori singoli:

Esempio

var person = "John Doe";
Prova tu stesso "

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

I valori sono scritti come nome: coppie di valori (nome e il valore separati da due punti).

Esempio

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

Un oggetto JavaScript è un insieme di valori denominati


Proprietà oggetto

I valori denominati, in oggetti JavaScript, sono chiamati proprietà.

Proprietà Valore
firstName John
lastName Doe
age 50
eyeColor blue

Oggetti scritte come coppie nome-valore sono simili a:

  • array associativi in ​​PHP
  • Dizionari in Python
  • tabelle hash in C
  • mappe hash in Java
  • Gli hash in Ruby e Perl

Metodi dell'oggetto

I metodi sono azioni che possono essere eseguite sugli oggetti.

Le proprietà degli oggetti possono essere entrambi i valori primitivi, altri oggetti e funzioni.

Un metodo oggetto è proprietà di un oggetto che contiene una definizione di funzione.

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

oggetti JavaScript sono contenitori per valori denominati, chiamati proprietà e metodi.

Si impara di più sui metodi nei prossimi capitoli.


Creazione di un oggetto JavaScript

Con JavaScript, è possibile definire e creare i propri oggetti.

Ci sono modi diversi per creare nuovi oggetti:

  • Definire e creare un unico oggetto, utilizzando un oggetto letterale.
  • Definire e creare un unico oggetto, con la parola chiave nuova.
  • Definire un costruttore di oggetto, e quindi creare oggetti del tipo costruito.

In ECMAScript 5, un oggetto può anche essere creato con la funzione Object.create() .


L'utilizzo di un oggetto letterale

Questo è il modo più semplice per creare un oggetto JavaScript.

L'utilizzo di un oggetto letterale, entrambi definire e creare un oggetto in una dichiarazione.

Un letterale oggetto è una lista di coppie nome: valore (come age:50 ) all'interno delle parentesi graffe {} .

L'esempio seguente crea un nuovo oggetto JavaScript con quattro proprietà:

Esempio

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

Gli spazi e le interruzioni di riga non sono importanti. Una definizione di un oggetto può estendersi su più righe:

Esempio

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

Utilizzando il nuovo JavaScript Chiave

L'esempio seguente crea un nuovo oggetto JavaScript con quattro proprietà:

Esempio

var person = new Object();
person.firstName = "John";
person.lastName = "Doe";
person.age = 50;
person.eyeColor = "blue";
Prova tu stesso "

I due esempi sopra fanno esattamente la stessa. Non vi è alcuna necessità di utilizzare new Object() .
Per semplicità, leggibilità e velocità di esecuzione, utilizzare il primo (il metodo oggetto letterale).


L'utilizzo di un costruttore dell'oggetto

Gli esempi di cui sopra sono limitate in molte situazioni. Essi creano solo un singolo oggetto.

A volte ci piace avere un "tipo di oggetto" che può essere usato per creare molti oggetti di un tipo.

Il metodo standard per creare un "tipo di oggetto" è quello di utilizzare una funzione oggetto costruttore:

Esempio

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");
Prova tu stesso "

La funzione di cui sopra (persona) è un costruttore dell'oggetto.

Una volta che avete un costruttore di oggetto, è possibile creare nuovi oggetti dello stesso tipo:

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

Il this Chiave

In JavaScript, la cosa chiamata this , è l'oggetto che "possiede" il codice JavaScript.

Il valore di this , quando usato in una funzione, è l'oggetto che "possiede" la funzione.

Il valore di this , quando viene utilizzato in un oggetto, è l'oggetto stesso.

Il this parola chiave in un costruttore di oggetto non ha un valore. E 'solo un sostituto per il nuovo oggetto.

Il valore di this diventerà il nuovo oggetto quando il costruttore viene utilizzato per creare un oggetto.

Si noti che questa non è una variabile. È una parola chiave. Non è possibile modificare il valore di this .


Built-in Costruttori JavaScript

JavaScript ha costruttori integrati per oggetti nativi:

Esempio

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
Prova tu stesso "

Il Math() oggetto non è nella lista. La matematica è un oggetto globale. La nuova parola chiave non può essere utilizzato su Math.

Lo sapevate?

Come si può vedere, JavaScript ha oggetto le versioni dei tipi di dati primitivi stringa, un numero, e booleani.

Non vi è alcun motivo per creare oggetti complessi. valori primitivi eseguono molto più veloce.

E non vi è alcun motivo per utilizzare la nuova Array() . Utilizzare letterali di array invece: []

E non vi è alcun motivo per utilizzare la nuova RegExp() . Utilizzare letterali modello invece: /()/

E non vi è alcun motivo per utilizzare la nuova Function() . Usare espressioni di funzione, invece: function () {} .

E non vi è alcun motivo per utilizzare new Object() . Utilizzare letterali oggetto invece: {}

Esempio

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
Prova tu stesso "

Oggetti JavaScript sono mutabili

Gli oggetti sono mutabili: Essi sono oggetto di riferimento, non per valore.

Se y è un oggetto, la seguente dichiarazione non creerà una copia di y:

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

L'oggetto x non è una copia di y. E 'y. Sia X che Y punti allo stesso oggetto.

Eventuali modifiche y cambierà anche x, perché xey sono lo stesso oggetto.

Esempio

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
Prova tu stesso "