Don P: OOP: Event an Member-Variable hängen?

Beitrag lesen

Und das funktioniert sogar:

  
/************************************************************************/  
var bitMaster = {  
  
  bitObjects: [],  
  
  bit: function(channel) { return this.bitObjects[channel]; },  
  
  newBit: function(inChannel) {  
  
    this.bitObjects[inChannel] = {  
  
      value: undefined,  
      channel: inChannel,  
      setValue: function(fromAJAX) { return this.value = +((fromAJAX & 1<<this.channel) > 0); }  
  
      /* hier evtl. weitere Eigenschaften und Methoden eines Bit-Objekts */  
    };  
  
    return bitMaster;  
  },  
  
  updateBits: function(fromAJAX) {  
  
    var i, bit, a = this.bitObjects, len = a.length;  
    for(i=0; i<len; i++) { (bit = a[i]) && bit.setValue(fromAJAX); }  
    return a;  
  }  
  
};  
  
/******************** Testlauf: *****************************/  
  
// Channel 0 anlegen:  
bitMaster.newBit(0);  
// Channel 2 anlegen:  
bitMaster.newBit(2);  
// Channel 4 anlegen und alle aktualisieren mit 21 (10101):  
bitMaster.newBit(4).updateBits(21);  
  
alert(bitMaster.bit(0).value); // 1 ( Wert in Channel 0)  
alert(bitMaster.bit(2).value); // 1 ( Wert in Channel 2)  
alert(bitMaster.bit(4).value); // 1 ( Wert in Channel 4)  
  
// Mit 11 (01011) aktualisieren und den Wert von Channel 4 speichern:  
var val4 = bitMaster.updateBits(11)[4].value;  
  
alert(bitMaster.bit(0).value); // 1 ( Wert in Channel 0)  
alert(bitMaster.bit(2).value); // 0 ( Wert in Channel 2)  
alert(val4);                   // 0 ( Wert in Channel 4)  

Gruß, Don P