7 Möglichkeiten, Objekte in JavaScript zu erstellen:
1. Object-Konstruktor
Der einfachste Weg, um ein Objekt zu erstellen, ist die Object-Konstruktor zu verwenden: Ansicht plainprint?
var person = new Object();
person.name = "Diego";
person.getName = function(){
return this.name;
};
2. Literal Notation
Ansicht plainprint?
var person = {
person.name : "Diego",
person.getName : function(){
return this.name;
}
}
3. Werks Funktion
Die Fabrik-Funktion ermöglicht die Logik für die Erstellung von ähnlichen Objekten zu kapseln und wiederverwenden. Es nutzt dafür alle vorherigen Konstrukte. Entweder: view plainprint?
var newPerson=function(name){
var result = new Object();
result.name = name;
result.getName = function(){
return this.name;
};
return result;
};
var personOne = newPerson("Diego");
var personTwo = newPerson("Gangelo");
console.log(personOne.getName()); // prints Diego
console.log(personTwo.getName()); // prints Gangelo
Oder:
view plainprint?
var newPerson=function(name){
return {
person.name : name,
person.getName : function(){
return this.name;
};
};
var personOne = newPerson("Diego");
var personTwo = newPerson("Gangelo");
console.log(personOne.getName()); // prints Diego
console.log(personTwo.getName()); // prints Gangelo
4. Funktion Constructor
In Javascript ist es möglich, jede Funktion mit dem neuen Betreiber vor, es zu nennen. Gegeben eine Funktion F, für neues F(): wird ein neues leeres Objekt X erzeugt. X wird als Kontext für F gesetzt, was bedeutet, dass durchgehend F auf X zeigt. X wird als Ergebnis von F angezeigt.
function Person(name){
this.name = name;
this.getName = function(){
return this.name;
};
};
var personOne = new Person("Diego");
console.log(personOne.getName()); // prints Diego
console.log(personOne instanceOf Person); // prints true
console.log(personOne.constructor === Person); // prints true
console.log(personOne instanceOf Object); // prints true
5. Prototype
Funktionen sind in Javascript ganz besonderes. Sie sind Objekte, sie können andere Objekte erstellen und erhalten automatisch ein Feld namens Prototyp. Ein Prototyp ist ein einfaches Objekt mit einem einzigen Feld namens Konstruktor, das auf die Funktion selbst verweist. Das Besondere daran ist, dass jedes Objekt, das durch eine Funktion erstellt wird, den Prototyp der Funktion erbt. ansicht plainprint?
function Person(){};
Person.prototype.name = "Diego";
var personOne = new Person();
var personTwo = new Person();
console.log(personOne.constructor == Person); // prints true
console.log(personOne.name); // prints Diego
console.log(personTwo.constructor == Person); // prints true
console.log(personTwo.name); // prints Diego
6. Funktion/Prototype Kombination
Die Funktion/Prototyp Kombination, wie Sie sich vorstellen können, nutzt die Vorteile beider Ansätze :) Ansicht plainprint?
function Person(name){
this.name = name;
};
Person.prototype.getName = function(){
return this.name;
};
var personOne = new Person("Diego");
var personTwo = new Person("Filippo");
console.log(personOne.getName()); // prints Diego
console.log(personTwo.getName()); // prints Filippo
console.log(personOne.getName === personTwo.getName) //prints true
7. Singleton
Manchmal können Sie sicherstellen möchten, dass nur eine Instanz einer bestimmten Klasse vorhanden ist. Um ein Singleton in Javascript zu erhalten, ist es so einfach, den Konstruktor gleichzeitig zu definieren und aufzurufen: view plainprint?
var singleton = new function(){
this.name = "ApplicationName";
};
In Ansatz 2 sollte das Schlüsselwort 'new' nicht vorhanden sein. – Halcyon
@FritsvanCampen - Ja sollte es. Dies erstellt ein neues Objekt aus der (anonymen) Konstruktorfunktion. –
Wenn das Schlüsselwort 'new' nicht vorhanden ist, wäre es eine Klasse. – macool