Ein Objekt erstellen
• Direkte Objektmessung
var o = {foo: "bar"}• Konstruktorfunktion
var o = neues Objekt ();
• Prototyp -Vererbung
var p = Object.create (o);
Klassenvererbung
JavaScript -Objekte haben ihre eigenen Eigenschaften und erbte Eigenschaften.
• Wenn Sie das Attribut x von Objekt O abfragen, suchen Sie zuerst nach dem Attribut x in o. Wenn es nicht gefunden wird, suchen Sie nach dem X -Attribut im Prototyp -Objekt von O bis x oder ein Objekt, dessen Prototyp null ist.
• Wenn Sie dem X -Attribut von Objekt O einen Wert zuweisen, ändern Sie den Wert von x. Wenn es in O keine Eigenschaft X gibt, erstellen Sie ein X -Attribut für O und weisen Sie einen Wert zu.
• Das heißt, die Prototyp -Kette funktioniert nur beim Abfragen.
var o = {x: 1}; Funktion p () {this.y = 2; } P.Prototype = o; var t = new P (); console.log (t); console.log ('x' in t); // true console.log (t.hasownProperty ('x')); // falseSie können in oder hasownProperty verwenden, um festzustellen, ob es Eigenschaften im Objekt gibt.
Objekteigenschaften
• Übertragen durch Objekteigenschaften
Sie können verwenden, um die Eigenschaften eines Objekts zu durchqueren
Wenn Sie für..in verwendet werden, iteriert die Eigenschaften der Prototypkette. Die Traversalordnung besteht darin, mit der Breite vor Priorität zu überqueren
Die Verwendung von HasownProperty kann daher bestimmen, ob es sich um das eigene Attribut eines Objekts handelt.
• Eigenschaften von Objekteigenschaften
Verwenden Sie Object.getownPropertyDescriptor (), um den Deskriptor für die Objektspezifische Eigenschaft zu erhalten
Beschreibbar bedeutet, ob das Objektattribut beschreibbar ist
Zum Beispiel
var o = {foo: 'bar'} object.defineProperty (o, "foo", {schriftlich: false});Aufzählbare Mittelwerte, ob das Objektattribut aufgezählt ist
Zum Beispiel
Die Aufzählung der Länge und anderer Attribute in Array ist also falsch, also
für (p in Array) {console.log (p);}Nichts Ausgabe
Konfigurierbar bedeutet, ob die Konfigurierbarkeit und Aufzählung von Eigenschaften geändert werden kann.
Diese Konfigurationseigenschaften können mit Object.defineProperties definiert werden.
Object.DefineProperty (o, "foo", {schriftlich: false});
Holen Sie sich eine Methode, um Objekteigenschaften zu erhalten
Der Satz repräsentiert eine Methode zum Festlegen von Objekteigenschaften
Beispiel
var book = {_year: 2004, edition: 1}; Object.DefineProperty (Buch, "Jahr", {get: function () {console.log ('Get Year'); return this._year;}, set: function (newValue) {console.log ('set Year';); NewValue - 2004;Objektmethode
Das Tostring wandelt Objekte in Zeichenfolgen um. Die Standardkonvertierung ist so etwas wie [Objektobjekt]. Wenn Sie sie also in das JSON -Format konvertieren müssen, können Sie JSON.Stringify verwenden
ValueOF muss verwendet werden, wenn Objekte in andere Typen konvertieren. Ebenso ist es nichts wert, über die Standardkonvertierung zu sagen.
Ausführbares Objekt
Sie können ein ausführbares Objekt mit der folgenden Methode erstellen
Funktionsleiste (o) {var f = function () {return "Hallo Welt!"; } o .__ proto__ = f .__ proto__; f .__ proto__ = o; return f;} var o = {x: 5}; var foo = bar (o); console.log (foo ()); console.log (foo.x); console.log (typeof foo); // FunktionEs kann als Objekt (mit einer Prototypkette) oder als Funktion verwendet werden, um es direkt aufzurufen