JavaScript-Objekt-Konstruktor
- Vorherige Seite JS-Objekt-Accessoren
- Nächste Seite JS-Objekthauptprototyp
Beispiel
Funktion Person(first, last, age, eye) { this.firstName = first; this.lastName = last; this.age = age; this.eyeColor = eye; }
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");
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";
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; };
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";
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"; }
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;}; }
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");
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
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
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.
- Vorherige Seite JS-Objekt-Accessoren
- Nächste Seite JS-Objekthauptprototyp