Benutzerdefinierte Methode: 1. Direkt über „Attributname/Wert“ erstellen, Syntax „var Objektname = {Attributname: Attributwert};“ 2. Verwenden Sie die Anweisung „var Objektname = neuer Konstruktorname (Argumente)“. 3. Verwenden Sie die Anweisung „Object.create (Prototypobjekt, Deskriptoren)“.
Die Betriebsumgebung dieses Tutorials: Windows 7-System, JavaScript-Version 1.8.5, Dell G3-Computer.
In Js können Entwickler zusätzlich zu integrierten Objekten wie Array, Datum, Zahl usw. ihre eigenen Objekte über Js-Code erstellen.
① Die Struktur ähnelt einem „Wörterbuch“: Die Eigenschaften des Objekts ähneln Schlüssel/Wert-Paaren; der Name der Eigenschaft ist eine Zeichenfolge und der Wert der Eigenschaft ist von jede Art.
② Prototyp-Vererbung: Js-Objekte können die Eigenschaften des Prototyps erben.
③ Dynamische Struktur: Attribute von Objekten können dynamisch hinzugefügt und gelöscht werden.
④ Referenztyp: Objekte in js sind Referenztypen. a ist ein Objekt, b = a, und das Ändern von b führt auch dazu, dass a geändert wird.
Es gibt drei Hauptmethoden, um benutzerdefinierte Objekte in Js zu erstellen: Objektliterale, neue Konstruktoren und Object.create()-Methoden. Das von jeder Erstellungsmethode geerbte Prototypobjekt ist unterschiedlich:
① Direkte Objektmenge: Der Prototyp ist Object.prototype.
② Neuer Konstruktor: Der Prototyp ist das Prototypattribut des Konstruktors.
③ Object.create(): Der Prototyp ist der erste übergebene Parameter. Wenn der erste Parameter null ist, wird Object.prototype als Prototyp verwendet.
1. Direkte Objektmenge
Beschreibung: Direkt über Attributnamen/-wert erstellt.
Syntax: var o = { name:'tom', age:22 };
Prototyp: Object.prototype
Anwendbare Szenarien: In einem bestimmten Bereich anwenden.
Beispiel:
var o = { name: 'tom' } console.log(o.constructor.prototype); // => Object() :对象直接量的原型为Object console.log(o.constructor.prototype === Object.prototype); // true
2. Neuer Konstruktor
Erklärung: Der Konstruktor ist ebenfalls eine Art Funktion, aber um die häufig verwendeten Funktionen zu unterscheiden, wird der Funktionsname des Konstruktors geschrieben in Kamelschrift (erste Großbuchstaben).
Syntax: var o = new ClassName();
Prototype: Prototype-Attribut des Konstruktors.
Beispiel:
// 1.创建构造函数 function People(name) { this.name; } var p = new People('Tom'); console.log(p.constructor.prototype); // => People{} :原型为构造函数的prototype console.log(p.constructor.prototype === People.prototype); // => true // 2.自定义对象的多层继承 :constructor返回最先调用的构造函数 function Student(age) { this.age = age; } Student.prototype = new People(); // 设置Student的原型为People对象 var s = new Student(22); // 对象初始化时,先调用People(),再调用Student() console.log(s.constructor); // => function People :对象s返回的构造函数为People console.log(s.constructor.prototype); // => People{} :原型对象为People console.log(s.constructor.prototype === People.prototype); // => true
3, Object.create(prototype, propertyDescriptor): ECMAScript 5-Spezifikation
Beschreibung: Erstellen Sie ein Objekt mit dem angegebenen Prototyp und den angegebenen Eigenschaften und geben Sie es zurück.
Syntax: Object.create(prototype, propertyDescriptor)
Parameter:
①prototype {prototype}: Erstellt den Prototyp des Objekts, der null sein kann. Wenn es null ist, ist der Prototyp des Objekts undefiniert.
②propertyDescriptor {propertyDescriptor} Optional: Eigenschaftsdeskriptor.
Prototyp: Der stille Prototyp ist Parameter ①; wenn Parameter ① null ist, ist der Prototyp des Objekts undefiniert.
Beispiel:
// 1.建立一个原型为null的对象 var o = Object.create(null, { name: { value: 'tom' } }); console.log(o.constructor); // => undefined // 2.创建一个原型为Array的对象 var array = Object.create(Array.prototype, {}); console.log(array.constructor); // => function Array 构造函数 console.log(array.constructor.prototype); // => [] :原型对象为数组 // 3.创建一个原型为自定义类的对象 function People() { } var p = Object.create(People.prototype, {}); console.log(p.constructor); // => function People 构造函数 console.log(p.constructor.prototype); // => People{} :原型对象People
[Verwandte Empfehlungen: Javascript-Lerntutorial]
Das obige ist der detaillierte Inhalt vonSo passen Sie Objekte in JavaScript an. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!