Thomas Schmidt: eval() oder nicht?

Beitrag lesen

Hallo Forum,

hab mal wieder eine Frage. Ich möchte ein Objekt mit diversen Eigenschaften an eine Funktion übergeben, wobei einige Eigenschaften Namen von Variablen sind (varVisu), in welche die Funktion Werte schreiben soll.

Objekt sieht z.B. so aus:

  
  
  comm.varRdZyk = {  
  
       // Parameter für Lesen  
       indexGroup: indexGroups.M,  
       firstByte: 50,  
       readLength: 78,  
       runAfterPoll: anzeig.aktualAnzeig,  
       refreshTime: 10000,  
  
       //Zuordnungen  
        alloc: {  
            fenstKZ: {  
                varVisu: anzeig.fenst.kz,  
                varPlcType: 'BOOL',  
                varPlcAddr: 50  
            },  
            fenstSZ: {  
                varVisu: anzeig.fenst.sz,  
                varPlcType: 'BOOL',  
                varPlcAddr: 61  
            },  
            fenstWZOstLi: {  
                varVisu: anzeig.fenst.wz.ostLi,  
                varPlcType: 'BOOL',  
                varPlcAddr: 200  
            },  
  
            ......  
  
        }  
   }  
  

Mir fallen jetzt 2 Möglichkeiten ein. Entweder übergebe ich den Variablennamen als String und nutze eval() oder ich übergebe Objekte und lasse mir die Werte in eine Eigenschaft schreiben. Von eval() wird ja ständig abgeraten, auch aus Performance-Gründen. Die Liste hat ca. 70-80 Unterobjekte wie "fenstKZ" und soll ca. alle 200 ms abgearbeitet werden.
Was ist besser?

Schon mal vielen Dank,

Tom