Dynamisch erstellen Sie eine neue javascript-Klasse, die aus einem vorhandenen Objekt
Sagen, ich habe den folgenden code:
var album = new MyObject('album');
Davon ausgehen, dass, wenn das Objekt konstruiert wird, eine Reihe von Eigenschaften relativ zu nur Alben geladen werden via AJAX. Wäre es möglich, erstellen Sie ein Album
Klasse, so dass zu einem späteren Zeitpunkt, kann ich nur dazu:
var anotherAlbum = new Album();
Den Album
Konstruktor automatisch die Eigenschaften, die einzigartig für album-Objekte, basierend auf dem, was geladen wurde, wenn die Erstellung MyObject('album')
InformationsquelleAutor jd. | 2010-02-26
Du musst angemeldet sein, um einen Kommentar abzugeben.
JavaScript - "Klassen", so wie jedes andere Objekt, können Sie dynamisch erstellt. Also, ja, dies getan werden kann.
Würden Sie etwas tun, wie dies in der code-handling der AJAX-Antwort (vorausgesetzt, dass die AJAX-Antwort war der name der neuen "Klasse", und es ist in einer Variablen namens newClassName):
InformationsquelleAutor jhurshman
JavaScript ist prototypal, nicht die klassische, also, wenn Sie denken in Begriffen von Klassen, du machst es falsch.
Müssen Sie nicht verwenden die
new
Betreiber überhaupt. Sie können erstellen Sie ein neues Objekt mit dem Objekt-literal:Dann erstellen Sie eine neue Instanz des Objekts:
Nun können Sie änderungen an den Parametern der
mySecondObject
, und wenn es mit Methoden, die Sie überlastet werden kann, Sie einfach als leicht:Dann
mySecondObject
natürlich haben alle die Eigenschaften, die Sie gabmyObject
auf die Schöpfung.Sich bewusst sein, dass dies ist eine einfache version, und, dass diese Blätter alle Attribute "öffentlich". Wenn Sie brauchen etwas Privatsphäre, es kann erreicht werden, indem Sie einige Funktionen in den mix. Es ist ein bisschen komplizierter, obwohl, so lassen Sie mich wissen, wenn Sie interessiert sind...
InformationsquelleAutor Adrian Schmidt
Dies ist eigentlich die einzige bei der Vererbung von JavaScript hat. JavaScript hat prototypal inheritance (die verwendet werden können, neu zu erstellen klassischen Vererbung). Das bedeutet, dass die Vererbung ist aus einem anderen Objekt, nicht die Klasse definition.
Um ein Objekt zu erstellen, die alle Eigenschaften eines anderen Objekts ist einfach:
InformationsquelleAutor noah
Können Sie verwenden, Douglas Crockford ' s Funktionale Vererbung. Code aus Javascript Good Parts book
Verwendet es Funktionen zum dekorieren bestehenden javascript-Objekte mit neuen Funktionen und Eigenschaften. So können Sie fügen Sie neue Funktionen und Eigenschaften on the fly " zu Ihrem bestehenden Objekt
InformationsquelleAutor mcaaltuntas
Können Sie dies tun,
InformationsquelleAutor Ehsun Shojaeenia