Der Unterschied zwischen new Object() und Object Literal Notation
Das Erstellen von Objekten in JavaScript kann auf zwei Arten erfolgen: mit dem Konstruktor- basierend auf der neuen Object()-Syntax oder der Objektliteral-Notation. Obwohl beide Methoden das gleiche Ergebnis zu erzielen scheinen, gibt es einen erheblichen Unterschied beim Hinzufügen von Methoden zu Objekten.
Objektliteral-Notation
Bei Verwendung der Objektliteral-Notation sind es Methoden innerhalb jedes einzelnen Objekts definiert, was zu einer potenziellen Speicherverschwendung führt, wenn zahlreiche Objekte oder Methoden beteiligt sind.
function Obj(prop) { return { p: prop, sayHello: function() { alert(this.p); }, }; } const foo = new Obj("hello");
Konstruktorbasiert Syntax
Im Gegensatz dazu werden Methoden mit der neuen Object()-Syntax im Objektprototyp definiert und von allen Objektinstanzen gemeinsam genutzt, wodurch die Speichernutzung optimiert wird.
function Obj(prop) { this.p = prop; } Obj.prototype.sayHello = function() { alert(this.p); }; const foo = new Obj("hello");
Vorteile der Verwendung von Objektprototypen
Durch die Verwendung der konstruktorbasierten Syntax und des Objektprototyps erhalten Sie Folgendes Vorteile:
Das obige ist der detaillierte Inhalt vonWarum sollten Sie für die Methodendefinition in JavaScript den Objektprototyp der Objektliteral-Notation vorziehen?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!