Costruttori degli oggetti JavaScript

Esempio

Corso raccomandato:
    this.firstName = first;
    this.lastName = last;
    this.age = age;
    function Person(first, last, age, eye) {
}

Prova tu stesso

this.eyeColor = eye;

L'abitudine di chiamare le funzioni costruttrici con lettere maiuscole è una buona pratica.

Tipo di oggetto (piano) (classe)

Esempi del capitolo precedente sono limitati. Creano solo un singolo oggetto.A volte dobbiamo creare molti oggetti dello stesso "Piano

".Un modo per creare un tipo di "oggetto" è utilizzare

funzione costruttore dell'oggettoNell'esempio sopra, funzione Person()

è la funzione costruttore dell'oggetto. new Attraverso

La parola chiave chiama la funzione costruttore e può creare oggetti dello stesso tipo:
var myFather = new Person("Bill", "Gates", 62, "blue");

Prova tu stesso

this var myMother = new Person("Steve", "Jobs", 56, "green");

parola chiave this le cose in JavaScript sono chiamate

this il valore, quando viene utilizzato nell'oggetto, è l'oggetto stesso.

Nella funzione costruttore,this Non ha valore. È il sostituto dell'oggetto nuovo. Quando un nuovo oggetto viene creato, il valore di this diventa questo oggetto.

Attenzione this Non è una variabile. È una parola chiave. Non è possibile modificare il valore di this.

Aggiungere attributi all'oggetto

Aggiungere un nuovo attributo a un oggetto esistente è semplice:

Esempio

myFather.nationality = "English";

Prova tu stesso

Il nuovo attributo è stato aggiunto a myFather. Non a myMother né a qualsiasi altro oggetto person.

Aggiungere metodi all'oggetto

Aggiungere un nuovo metodo a un oggetto esistente è semplice:

Esempio

myFather.name = function () {
    return this.firstName + " " + this.lastName;
};

Prova tu stesso

Il nuovo metodo è stato aggiunto a myFather. Non a myMother né a qualsiasi altro oggetto person.

Aggiungere attributi al costruttore

Diversamente dall'aggiungere un nuovo attributo a un oggetto esistente, non è possibile aggiungere nuovi attributi al costruttore di un oggetto:

Esempio

Person.nationality = "English";

Prova tu stesso

Per aggiungere un nuovo attributo al costruttore, è necessario aggiungerlo alla funzione costruttore:

Esempio

function Person(first, last, age, eyecolor) {
    this.firstName = first;
    this.lastName = last;
    this.age = age;
    this.eyeColor = eyecolor;
    this.nationality = "English";
}

Prova tu stesso

In questo modo le proprietà dell'oggetto possono avere valori predefiniti.

Aggiungere metodi al costruttore

Il suo costruttore funzione può anche definire metodi:

Esempio

function Person(first, last, age, eyecolor) {
    this.firstName = first;
    this.lastName = last;
    this.age = age;
    this.eyeColor = eyecolor;
    this.name = function() {return this.firstName + " " + this.lastName;};
}

Prova tu stesso

Diversamente dall'aggiungere un nuovo metodo a un oggetto esistente, non è possibile aggiungere nuovi metodi al costruttore di un oggetto.

Deve aggiungere un metodo a un oggetto all'interno del costruttore funzione:

Esempio

function Person(firstName, lastName, age, eyeColor) {
    this.firstName = firstName;  
    this.lastName = lastName;
    this.age = age;
    this.eyeColor = eyeColor;
    this.changeName = function (name) {
        this.lastName = name;
    };
}

La funzione changeName() assegna il valore di name all'attributo lastName dell'oggetto person.

Ora puoi provarlo:

myMother.changeName("Jobs");

Prova tu stesso

Usando myMother Sostituisci con this,JavaScript può sapere quale persona sta trattando al momento.

Costruttori JavaScript integrati

JavaScript fornisce costruttori per oggetti primitivi:

Esempio

var x1 = new Object();    // Un nuovo oggetto Object
var x2 = new String();    // Un nuovo oggetto String
var x3 = new Number();    // Un nuovo oggetto Number
var x4 = new Boolean();   // Un nuovo oggetto Boolean
var x5 = new Array();     // Un nuovo oggetto Array
var x6 = new RegExp();    // Un nuovo oggetto RegExp
var x7 = new Function();  // Un nuovo oggetto Function
var x8 = new Date();      // Un nuovo oggetto Date

Prova tu stesso

Math() Gli oggetti non sono nella lista. Math è un oggetto globale.new Le parole chiave non possono essere utilizzate in Math.

Lo sai?

Come visto sopra, JavaScript fornisce oggetti di tipo dati primitivi stringa, numero e booleano. Ma non c'è ragione per creare oggetti complessi. I valori primitivi sono molto più veloci!

Sostituisci con il costruttore letterale di oggetto {} Sostituisci con new Object()

Sostituisci con il costruttore letterale di stringa "" Sostituisci con new String()

Sostituisci con il costruttore letterale numerico Number()

Sostituisci con il costruttore letterale booleano new Boolean()

Utilizza il costruttore letterale di array [] Sostituisci con new Array()

Sostituisci con il costruttore letterale di modello new RexExp()

Utilizza l'espressione di funzione () {} Sostituisci con new Function()

Esempio

var x1 = {};            // Nuovo oggetto
var x2 = "";            // Nuovo stringa originale
var x3 = 0;             // Nuovo valore numerico originale
var x4 = false;         // Nuovo valore logico originale
var x5 = [];            // Nuovo oggetto array
var x6 = /()/           // Nuovo oggetto espressione regolare
var x7 = function(){};  // Nuovo oggetto funzione

Prova tu stesso

Oggetto stringa

Di solito, le stringhe vengono create come valori primitivi: var firstName = "Bill"

Ma può anche essere utilizzato new Keyword per creare oggetti stringa: var firstName = new String("Bill")

Per favore Stringa JSIn questa sezione imparerai perché non si dovrebbe creare stringhe come oggetti.

Oggetto numerico

Di solito, i numeri vengono creati come valori primitivi: var x = 456

Ma può anche essere utilizzato new Keyword per creare oggetti numerici: var x = new Number(456)

Per favore Numero JSIn questa sezione imparerai perché non si dovrebbe creare numeri come oggetti.

Oggetto booleano

Di solito, i valori logici vengono creati come valori primitivi: var x = false

Ma può anche essere utilizzato new Keyword per creare oggetti logici: var x = new Boolean(false)

Per favore Logica JSIn questa sezione imparerai perché non si dovrebbe creare valori logici come oggetti.