JavaScript-Objekt-Konstruktor

Beispiel

Funktion Person(first, last, age, eye) {
    this.firstName = first;
    this.lastName = last;
    this.age = age;
    this.eyeColor = eye;
}

Probieren Sie es selbst aus

Es ist eine gute Gewohnheit, den Namen der Konstruktormethode in Großbuchstaben zu schreiben.

Objektart (Blau print) (Klasse)

Das Beispiel im vorherigen Kapitel ist begrenzt. Sie erstellen nur ein einzelnes Objekt.

Manchmal müssen wir viele Objekte desselben "Blau print".

Eine Methode, um eine "Objektart" zu erstellen, ist die Verwendung vonObjekt-Konstruktormethode

Im obigen Beispiel,Funktion Person() ist es die Objekt-Konstruktormethode.

Durch new Das Schlüsselwort ruft die Konstruktormethode auf und kann Objekte desselben Typs erstellen:

var myFather = new Person("Bill", "Gates", 62, "blue");
var myMother = new Person("Steve", "Jobs", 56, "green");

Probieren Sie es selbst aus

this Schlüsselwort

In JavaScript wird es this Das ist der 'Eigentümer' des Codes.

this wird der Wert verwendet, wenn er im Objekt verwendet wird, ist es das Objekt selbst.

In der Konstruktormethode,this Es hat keinen Wert. Es ist ein Ersatz für den neuen Objekt. Wenn ein neues Objekt erstellt wird, wird der Wert von this der neuen Objekt sein.

Bitte beachten Sie this Es ist nicht eine Variable. Es ist ein Schlüsselwort. Der Wert von this kann nicht geändert werden.

Eigenschaften zu Objekten hinzufügen

Es ist einfach, einer bestehenden Objekt eine neue Eigenschaft hinzuzufügen:

Beispiel

myFather.nationality = "English";

Probieren Sie es selbst aus

Die neue Eigenschaft wird zu myFather hinzugefügt. Nicht zu myMother, auch nicht zu jedem anderen Person-Objekt.

Methoden zu Objekten hinzufügen

Es ist einfach, einer bestehenden Objekt eine neue Methode hinzuzufügen:

Beispiel

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

Probieren Sie es selbst aus

Die neue Methode wird zu myFather hinzugefügt. Nicht zu myMother, auch nicht zu jedem anderen Person-Objekt.

Eigenschaften zu Konstruktoren hinzufügen

Im Gegensatz zur Hinzufügung neuer Eigenschaften zu bestehenden Objekten können Sie keine neuen Eigenschaften zu Objektkonstruktoren hinzufügen:

Beispiel

Person.nationality = "English";

Probieren Sie es selbst aus

Um eine neue Eigenschaft zu einem Konstruktor hinzuzufügen, müssen Sie sie zur Konstruktorfunktion hinzufügen:

Beispiel

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

Probieren Sie es selbst aus

Auf diese Weise können Objekteigenschaften Standardwerte haben.

Methoden zu Konstruktoren hinzufügen

Ihre Konstruktorfunktion kann auch Methoden definieren:

Beispiel

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;};
}

Probieren Sie es selbst aus

Im Gegensatz zur Hinzufügung neuer Methoden zu bestehenden Objekten können Sie keine neuen Methoden zu Objektkonstruktoren hinzufügen.

Muss innerhalb der Konstruktorfunktion einem Objekt eine Methode hinzugefügt werden:

Beispiel

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;
    };
}

Die Funktion changeName() weist den Wert name der Eigenschaft lastName des Objekts person zu.

Jetzt können Sie es ausprobieren:

myMother.changeName("Jobs");

Probieren Sie es selbst aus

durch myMother ersetzen this,JavaScript kann erkennen, welchen 'person' es momentan behandelt.

Eingebauter JavaScript Konstruktor

JavaScript bietet Konstruktoren für primäre Objekte:

Beispiel

var x1 = new Object();    // ein neues Object-Objekt
var x2 = new String();    // ein neues String-Objekt
var x3 = new Number();    // ein neues Number-Objekt
var x4 = new Boolean();   // ein neues Boolean-Objekt
var x5 = new Array();     // ein neues Array-Objekt
var x6 = new RegExp();    // ein neues RegExp-Objekt
var x7 = new Function();  // ein neues Function-Objekt
var x8 = new Date();      // ein neuer Date-Objekt

Probieren Sie es selbst aus

Math() Objekte gehören nicht dazu. Math ist ein globales Objekt.new Schlüsselwörter können nicht in Math verwendet werden.

Wissen Sie das?

Wie oben zu sehen ist, bietet JavaScript die Objektversionen der primären Daten Typen Zeichenkette, Zahl und Boolean an. Aber es gibt keinen Grund, komplexe Objekte zu erstellen. Primäre Werte sind schneller!

Verwenden Sie den Objektliteralsatz {} ersetzen new Object()

Verwenden Sie den Stringliteralsatz "" ersetzen new String()

Verwenden Sie den Numeralliteralsatz Number()

Verwenden Sie den Boolliteralsatz new Boolean()

Verwenden Sie den Arrayliteralsatz [] ersetzen new Array()

Verwenden Sie den Musterliteralsatz new RegExp()

Verwenden Sie die Funktionsexpression () {} ersetzen new Function()

Beispiel

var x1 = {};            // neuer Objekt
var x2 = "";            // neue ursprüngliche Zeichenkette
var x3 = 0;             // neue ursprüngliche Zahl
var x4 = false;         // neue ursprüngliche Logik
var x5 = [];            // Neues Array-Objekt
var x6 = /()/           // Neues reguläres Ausdrucksobjekt
var x7 = function(){};  // Neues Funktionsobjekt

Probieren Sie es selbst aus

Zeichenfolgen-Objekte

Normalerweise werden Zeichenfolgen als Primärwerte erstellt: var firstName = "Bill"

Man kann aber auch verwenden new Zeichenfolgenobjekte mit Schlüsselworten erstellen: var firstName = new String("Bill")

Bitte erstellen Sie JS-ZeichenfolgenIn diesem Kapitel lernen Sie, warum man Zeichenfolgen nicht als Objekte erstellen sollte.

Numerische Objekte

Normalerweise werden numerische Werte als Primärwerte erstellt: var x = 456

Man kann aber auch verwenden new Numerische Objekte mit Schlüsselworten erstellen: var x = new Number(456)

Bitte erstellen Sie JS-ZahlenIn diesem Kapitel lernen Sie, warum man numerische Werte nicht als Objekte erstellen sollte.

Boolean-Objekte

Normalerweise werden Logikwerte als Primärwerte erstellt: var x = false

Man kann aber auch verwenden new Logische Objekte mit Schlüsselworten: var x = new Boolean(false)

Bitte erstellen Sie JS-LogikIn diesem Kapitel lernen Sie, warum man Logikwerte nicht als Objekte erstellen sollte.