gruss Felix,
... Ich hatte allerdings im Web gesehen, dass man arguments.callee
nur für namenlose Funktionen benutzt ...
warum nur fuer die? »this.constructor = arguments.callee;
« laesst sich
als universalbaustein doch voellig unabhaengig vom konstruktornamen
verwenden. natuerlich wird die treibende kraft hinter »arguments.callee
«
das beduerfnis gewesen sein, aus einer anonymen funktionen heraus auf
ebenjene zugreifen zu koennen, um z.b. auch namenlose funktionsobjekte
rekursiv ausfuehren zu koennen. das schraenkt aber keineswegs den
anwendungsspielraum fuer »arguments.callee
« ein.
... und es seit 1.4 als depreciated
gilt.
ganz bestimmt nicht. mit 1.4 wurde [arguments] von einer eigenschaft
eines funktionsobjekts zu einer lokalen variable eines jeden solchen
umgebogen. »arguments.callee
« wurde schon immer und auch in zukunft
dringend gebraucht. die verwendung von »arguments.caller
« hingegen
wird seit 1.3 missbilligt. mit 1.5 jedoch wurde »[Function].caller
«
eingefuehrt, sodass, wenn auch nicht ECMA-262-standardisiert, folgendes
konstrukt - »arguments.callee.caller
« - logisch ist und, wo unterstuetzt,
auch richtig waere.
gute nacht - peterS. - pseliger@gmx.net
»Because objects in JavaScript are so flexible, you will want to think differently about class hierarchies.
Deep hierarchies are inappropriate. Shallow hierarchies are efficient and expressive.« - Douglas Crockford
ie:( fl:) br:> va:( ls:& fo:) rl:) n3;} n4:} ss:} de:µ js:} mo:? zu:]