Q
Questioner
Guest
Hi Leute,
ich versuche mein Problem mal an einem Beispiel zu erklären.
Ich habe ein Objekt "Filter" und ein Objekt "Elemente", von denen ich jeweils mehrere Instanzen bilden möchte.
Nun soll jede Objektinstanz von "Filter" ein Event "filter" bereitstellen, auf welches eine "Elemente"-Instanz hören/reagieren soll...
Beispiel-Code (nicht funktional):
Ich hoffe es ist klar, was ich vorhabe?!
Sobald das Filter-Objekt ein Event feuert, sollen andere Objekte (hier Elemente), die das Event abonniert haben, darauf reagieren. In OOP-Sprachen gibt es so ein Konstrukt natürlich, aber auch bei JS?!
Natürlich könnte ich in dem Filter-Objekt auch ein Array an Elemente-Instanzen pflegen und diese bei "Auslösung des Events" antriggern, jedoch soll keine feste Verbindung zwischen Filter und Element bestehen, sodass ein Element auch jederzeit und ohne weitere Verbindlichkeiten gelöscht werden kann.
Oder gibt es sonst Lösungsansätze?
Wichtig wäre mir, dies alles ohne irgendwelche Frameworks zu realiseren.
Vielen Dank und beste Grüße
Q
ich versuche mein Problem mal an einem Beispiel zu erklären.
Ich habe ein Objekt "Filter" und ein Objekt "Elemente", von denen ich jeweils mehrere Instanzen bilden möchte.
Nun soll jede Objektinstanz von "Filter" ein Event "filter" bereitstellen, auf welches eine "Elemente"-Instanz hören/reagieren soll...
Beispiel-Code (nicht funktional):
Code:
function Filter(name) {
[INDENT]...
this.name = name;
this.setFilterValue = function(value){
[INDENT]this.value = value;
[B][I]Auslösung Event filterUpdate[/I][/B]
[/INDENT]
};
...[/INDENT]
};
function Elemente() {
.[INDENT]..
[I][B]this.gefiltert[/B][/I] = function(filter){
[INDENT]alert("filter.name");[/INDENT]
}
...[/INDENT]
};
var fA = new Filter("FilterA");
var fB = new Filter("FilterB");
var e1 = new Element();
e1.[I][B]abboniereEvent(fA.filterUpdate, gefiltert)[/B][/I];
var e2 = new Element();
e2.[I][B]abboniereEvent(fA.filterUpdate, gefiltert)[/B][/I];
var e3 = new Element();
e3.[B][I]abboniereEvent(fB.filterUpdate, gefiltert)[/I][/B];
fA.setFilterValue(1);
[I]-> e1.gefiltert() -> "FilterA"
-> e2.gefiltert() -> "FilterA"[/I]
fB.setFilterValue(1);
[I]-> e3.gefiltert() -> "FilterB"[/I]
Ich hoffe es ist klar, was ich vorhabe?!
Sobald das Filter-Objekt ein Event feuert, sollen andere Objekte (hier Elemente), die das Event abonniert haben, darauf reagieren. In OOP-Sprachen gibt es so ein Konstrukt natürlich, aber auch bei JS?!
Natürlich könnte ich in dem Filter-Objekt auch ein Array an Elemente-Instanzen pflegen und diese bei "Auslösung des Events" antriggern, jedoch soll keine feste Verbindung zwischen Filter und Element bestehen, sodass ein Element auch jederzeit und ohne weitere Verbindlichkeiten gelöscht werden kann.
Oder gibt es sonst Lösungsansätze?
Wichtig wäre mir, dies alles ohne irgendwelche Frameworks zu realiseren.
Vielen Dank und beste Grüße
Q