2012-09-10 9 views
6

Ich lerne JavaScript aus den Grundlagen (obwohl ich in anderen Sprachen wie C# programmieren). Es tauchte die Frage auf, welche dieser beiden Wege effizienter ist und als allgemeine Regel verwendet werden sollte.Wörtliche Notation VS. Konstruktor zum Erstellen von Objekten in JavaScript

Ich bin sicher und erwarte keine definitive Antwort, aber ich würde gerne die allgemeinen Vor- und Nachteile kennen.

Vielen Dank !!

+1

beide haben ihre Verwendung, die Wahl ist nicht, das eine oder das andere zu verwenden. – Ibu

+1

Viel bessere Antworten auf die gleiche Frage hier: http://stackoverflow.com/questions/4859800/should-i-be-using-object-literals-or-constructor-functions – BritishDeveloper

Antwort

8

Objektliterale sind normalerweise der Weg zu gehen. Sie müssen nur beim Laden des Skripts geparst werden, wodurch verschiedene Optimierungen durch die Skript-Engine eingeführt werden können.

Konstruktoren müssen ausgeführt werden. Das heißt, sie werden langsamer sein, aber Sie können ihnen leicht einen Validierungscode usw. hinzufügen, und sie ermöglichen die Konstruktion komplexer Objekte mit öffentlichen, privilegierten Methoden und privaten "Attributen", die im Konstruktorbereich verborgen sind. Außerdem konstruieren sie natürlich Objekte, die einen Prototyp teilen, den Sie vielleicht nützlich finden.

4

Keine Kenntnis der Leistungseffizienz von einem über den anderen. Die Literalnotation scheint jedoch aufgrund des Arguments simplicity ihre Präferenz zu erhalten und vermeidet die Verwendung von Konstruktoren und new keyword.

Konstruktoren und das Schlüsselwort new werden von einigen als negative Merkmale der JavaScript-Sprache angesehen (siehe Crockford - JavaScript: The Good Parts). JSLint ruft sogar beim Suchen nach new Array() oder new Object() auf.

Verwandte Themen