Heim >Web-Frontend >js-Tutorial >Wie js Objekte und ihre Eigenschaften erstellt
Es gibt viele Möglichkeiten, Objekte in js zu erstellen. Jede Methode hat ihre eigenen Vor- und Nachteile. Daher ist es sehr wichtig, eine geeignete Methode zum Erstellen von Objekten auszuwählen.
1. Fabrikmuster
function createPerson(name){ //1、原料 var obj=new Object(); //2、加工 obj.name=name; obj.showName=function(){ alert(this.name); } //3、出场 return obj; } var p1=createPerson('小米'); p1.showName();
Vorteile: Lösen Sie das Problem der Erstellung ähnlicher Objekte
Nachteile: Sie können den Typ eines Objekts nicht kennen
2. Konstruktor
function CreatePerson(name){ this.name=name; this.showName=function(){ alert(this.name); } } var p1=new CreatePerson('小米');
Vorteile: Einige Instanzen können als spezifischer Typ dargestellt werden
Nachteile: Die Methode wird bei jeder Instanz immer wieder neu erstellt
3. Prototyp
function Person(){} Person.prototype.name="小米"; Person.prototype.showName=function(){ alert(this.name); } var p1=new Person(); p1.showName();
Vorteile: Attribute und Methoden werden auf dem Prototyp definiert, sodass jede Instanz Attribute und Methoden gemeinsam nutzen kann
Nachteil: Instanzattribute können nicht privatisiert werden
4 . Hybrid (Konstruktor + Prototyp)
function CreatePerson(name){ this.name=name; } Create.prototype.showName=function(){ alert(this.name); } var p1=new CreatePerson('小米'); p1.showName(); var p2=new CreatePerson('小米'); p2.showName(); alert(p1.showName==p2.showName);//true;原因:都是在原型下面,在内存中只存在一份,地址相同
Verwenden Sie den Konstruktor, um Eigenschaften zu definieren, und den Prototyp, um Methoden und gemeinsame Eigenschaften zu definieren.
5. Literal
person={ name:"小米", age:23 };
Verwandte Empfehlungen:
JS-Schreibbeispiel für die Erstellung eines Objekts
Verschiedene Methoden zum Erstellen von JS-Objekten werden ausführlich beschrieben
Das obige ist der detaillierte Inhalt vonWie js Objekte und ihre Eigenschaften erstellt. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!