Ich versuche, mein Node.js Objekt Cast-Ereignisse zu haben. Jetzt ist das kein Problem, wenn ich "statische" Objekte mache und sie instanziiere, aber wie mache ich das, wenn mein Objekt keinen statischen Großvater hat, wie wenn ein Objekt mit Objektliteral -Notation erstellt wurde?
Ich bin es gewohnt, ExtJS-Syntax zu schreiben, also bevorzuge ich alles im Objektliteral.
%Vor%Dies ist ein Objekt. Es hat keinen Konstruktor, da es nicht mehr Instanzen geben muss.
Wie erlaube ich myObject
nun, Ereignisse zu senden?
Ich habe versucht und versucht, Code anzupassen, aber Ich kann es nicht zum Laufen bringen, ohne mein Objekt in ein Formular mit einem Konstruktor wie umzuwandeln:
%Vor%Oder füge meine Funktionen / Prototypen zu etwas hinzu, das wie folgt konstruiert ist:
%Vor% Wie erlaube ich myObject
, Ereignisse zu emittieren, während ich die Objektliteralnotation behalte?
Es gibt so viele verwirrende Wege, dies zu tun, aber nicht eine innerhalb dieser JSON- wie notierte Objekte.
Leider ist Ihre gewünschte objektliterale Syntax nicht möglich. Es ist weil
%Vor%entspricht
%Vor% darin, dass der Prototyp von obj
bei der Erstellung auf Object.prototype
fixiert ist und Sie das später nicht ändern können.
Da Sie nur eine einzelne Instanz möchten, würde ich argumentieren, dass sinnvoll ist, eine Instanz von EventEmitter
zu erstellen und ihr Eigenschaften zuzuweisen:
Sie brauchen hier nicht util.inherits
, da Sie nur eine Instanz haben, also gibt es keine Kette zum Einrichten.
Das ist eine völlig wilde Vermutung, da ich JavaScript nur für Browser programmiert habe. Können Sie jedoch nicht einfach EventEmitter
auf Ihrem Objekt aufrufen, nachdem Ihr Objektliteral erstellt hat?
Leider ist Ihre gewünschte objektliterale Syntax nicht möglich. Es ist weil
%Vor%entspricht
%Vor%darin, dass der Prototyp von %code% bei der Erstellung auf %code% fixiert ist und Sie das später nicht ändern können.
Da Sie nur eine einzelne Instanz möchten, würde ich argumentieren, dass sinnvoll ist, eine Instanz von %code% zu erstellen und ihr Eigenschaften zuzuweisen:
%Vor%Sie brauchen hier nicht %code% , da Sie nur eine Instanz haben, also gibt es keine Kette zum Einrichten.
Ich versuche, mein Node.js Objekt Cast-Ereignisse zu haben. Jetzt ist das kein Problem, wenn ich "statische" Objekte mache und sie instanziiere, aber wie mache ich das, wenn mein Objekt keinen statischen Großvater hat, wie wenn ein Objekt mit Objektliteral -Notation erstellt wurde?
Ich bin es gewohnt, ExtJS-Syntax zu schreiben, also bevorzuge ich alles im Objektliteral.
%Vor%Dies ist ein Objekt. Es hat keinen Konstruktor, da es nicht mehr Instanzen geben muss.
Wie erlaube ich %code% nun, Ereignisse zu senden?
Ich habe versucht und versucht, Code anzupassen, aber Ich kann es nicht zum Laufen bringen, ohne mein Objekt in ein Formular mit einem Konstruktor wie umzuwandeln:
%Vor%Oder füge meine Funktionen / Prototypen zu etwas hinzu, das wie folgt konstruiert ist:
%Vor%Wie erlaube ich %code% , Ereignisse zu emittieren, während ich die Objektliteralnotation behalte? Es gibt so viele verwirrende Wege, dies zu tun, aber nicht eine innerhalb dieser JSON- wie notierte Objekte.
Warum nicht Komposition statt Vererbung verwenden?
%Vor%Tags und Links javascript node.js events eventemitter object-literal