Hallo,
Ich vermute jedoch, die Antwort ist nein.
Ich vermute dagegen, die Antwort ist ja. Nicht ganz trivial, aber das sollte gehen. Leider verstehe ich deine deine Beschreibung nur ganz grob:
ich möchte aber den HTTP-Request nicht 16x ausführen um zu erfahren, ob die einzelnen Kanäle gesetzt sind sondern möchte einmal "blockweise" den Wert lesen und wenn der neue Wert da ist, die anderen Objekte über das Update in Kenntnis setzen und in einer Member-Funktion die Verundung durchführen.
Welche anderen Objekte? Sind es z.B. 16 an der Zahl, jedes zuständig für ein Bit, und du wisst nur die betroffenen benachrichtigen oder alle? Und was für eine Member-Funktion bzw. Member wovon?
var2 bis var16 sind die anderen Objekte. Es können 16 sein, können auch mehr sein, hängt dann von der Konfig ab. Rest siehe unten...
D.h. ich möchte im Originalobjekt die Eingangsvariable von der Hardware setzen und in den anderen Objekten auf diese Variable referenzieren.
Was für ein OriginalObjekt? Das XHR-Objekt?
var1 ist mein Originalobjekt
Zeig' doch mal etwas Code...
Unnötiges Zeug (wonach die Variablen refreshed werden) habe ich rausgeschmissen...
function oADSVar(_inChannel, _inCurrentValue)
{
// Kanalnummer, beginnend bei 1
this.inChannel = _inChannel;
this.inCurrentValue = _inCurrentValue;
this.setCurrVal = function(_inCurrVal)
{
if (this.inChannel != "")
{
( ( _inCurrVal & Math.pow(2, (this.inChannel)-1) ) > 0) ? this.inCurrentValue = 1 : this.inCurrentValue = 0;
}
}
}
function setCurrVal2()
{
alert("update!");
}
var var1 = new oADSVar("1" "");
var var2 = new oADSVar("2", var1.inCurrentValue);
//var2.inCurrentValue.addEventListener('change',setCurrVal2,false); -> ergibt Fehler
var2.inCurrentValue.onChange = setCurrVal2; // fehlerfrei, aber funtkioniert nicht
var2 bis var16 soll nur noch die Referenz auf var1.inCurrentValue erhalten und bei deren Änderung soll in zB var2 setCurrVal aufgerufen werden (oder wenn es nicht anders geht, dann eine externe Funtkion wie setCurrVal2)
Hoffe, jetzt ist es verständlicher...?