Hallo,
Code-Teile, die ich mit viel Hirnschmalz ausgetüftelt und getestet habe, notiere ich gern in möglichst kurzer Form. Wenn ich später in meinem Code etwas sehe wie
setCols: function(csn){for(var c0,c1,hh=new Array(this.atPos.length),i=0;i in this.atPos;i++){c1=(i+1)%csn||csn;c0=+i?(c1-1)||csn:c1;hh[i]={n0:c0,n1:c1,h0:i,h1:36-i};}this.cHits=hh;this.cNums=this.setCols(csn);return hh;}
dann weiß ich gleich: "bloß nicht mehr anfassen, das funktioniert".
Beim Verkürzen ist mir aufgefallen, dass man z.B. folgendes
for (csn in cs) {
if (cs[csn].active) {
if (cs[csn].bestFix) {cs[csn].bestClick();}
else {cs[csn].sysScan();}
}
}
auch so notieren kann:
for (csn in cs) { cs[csn].active && ( cs[csn].bestFix ? cs[csn].bestClick() : cs[csn].sysScan() ) }
In der for-Schleife steht jetzt nur noch ein Ausdruck, kein Befehl oder Zuweisung oder so. Das Ergebnis des Ausdrucks (Inhalt von cs[csn].active
oder ein Funktionsergebnis) landet sozusagen im Nirwana, wird ja auch nicht weiter benötigt.
Frage an ECMAscript-Kenner:
Wird damit nicht vielleicht der Garbage-Collector überstapaziert (wenn man ständig so codet), oder ist das legitim, weil ja eigentlich der Interpreter gleich erkennen kann bzw. könnte, was da zu tun ist (nämlich das Ergebnis verwerfen)?
Danke und Gruß, Don P