Wissenspunkte:
(1) JS-objektorientierte Grundlagen: ECMA-262 definiert ein Objekt als: „Eine Sammlung ungeordneter Attribute, deren Attribute Grundwerte, Objekte oder Funktionen enthalten können.“
(2) Methoden zum Erstellen von Objekten in JS:
(a) Factory-Muster: Verwenden Sie Funktionen, um die Details des Erstellens von Objekten mit einer bestimmten Schnittstelle zu kapseln.
function createPerson(name, age, job){ var o = new Object(); o.name = name; o.age = age; o.job = job; o.sayName = function(){ alert(this.name); }; return o; } var person1 = createPerson(“Nicholas”, 29, “Software Engineer”); var person2 = createPerson(“Greg”, 27, “Doctor”);
Nachteile: Obwohl das Factory-Muster das Problem der Erstellung mehrerer bekannter Objekte löst, löst es nicht das Problem der Objekterkennung (d. h. wie man den Typ eines Objekts erkennt).
(b) Konstruktormuster: Konstruktoren in ECMAScript können zum Erstellen von Objekten bestimmter Typen verwendet werden. Sie können benutzerdefinierte Konstruktoren erstellen, um Eigenschaften und Methoden benutzerdefinierter Objekttypen zu definieren.
function Person(name, age, job){ this.name = name; this.age = age; this.job = job; this.sayName = function(){ alert(this.name); }; } var person1 = new Person(“Nicholas”, 29, “Software Engineer”); var person2 = new Person(“Greg”, 27, “Doctor”);
Nachteile: Das Hauptproblem bei der Verwendung von Konstruktoren besteht darin, dass jede Methode auf jeder Instanz neu erstellt werden muss. Vergessen Sie nicht – Funktionen in ECMAScript sind Objekte. Jedes Mal, wenn Sie eine Funktion definieren,
, instanziieren Sie ein Objekt.
(c) Prototypmuster: Jede von uns erstellte Funktion verfügt über ein Prototypattribut, bei dem es sich um einen Zeiger handelt, der auf ein Objekt zeigt. Der Zweck dieses Objekts besteht darin, alle Objekte zu enthalten, die durch einen bestimmten Typ dargestellt werden können
Von Instanzen gemeinsam genutzte Eigenschaften und Methoden. Der Vorteil der Verwendung eines Prototypobjekts besteht darin, dass alle Objekte die darin enthaltenen Eigenschaften und Methoden gemeinsam nutzen können. Nachteile: Alle Eigenschaften im Prototyp werden von vielen Instanzen gemeinsam genutzt. Bei Eigenschaften mit Referenztypwerten ist das Problem jedoch schwerwiegender.
function Person(){ } Person.prototype.name = “Nicholas”; Person.prototype.age = 29; Person.prototype.job = “Software Engineer”; Person.prototype.sayName = function(){ alert(this.name); }; var person1 = new Person(); person1.sayName(); //”Nicholas” var person2 = new Person(); person2.sayName(); //”Nicholas” alert(person1.sayName == person2.sayName); //true
Das obige ist der detaillierte Inhalt vonAusführliche Erläuterung objektorientierter Methoden sowie Vor- und Nachteile der Objekterstellung in JavaScript. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!