Erstmal danke für den schönen Post. Er hat mir im groben gut geholfen!
»» Ich hatte vor eine neue Klasse auf Basis eines Arrays zu schreiben,
»» die ihn um einige Methoden erweitert.
<p class="korinthenkackermodus">
Du wolltest einen konstruktor schreiben, dessen objekte ihren kontext
sowohl beim instanziieren als auch beim methodenaufruf delegieren.
im ersten fall explizit an [[Array]] ueber eine der call-methoden [call]
bzw. [apply], im zweiten fall implizit ueber die methoden des leeren am
konstruktor haengenden array-objekt-prototypen.
</p>
Ich habe noch viel mehr probiert um obiges zu erreichen. Der gepostete Code ist nur ein kleiner Teil meiner (gescheiterten) Versuche. BTW, gibt es einen Unterschied zwischen "call" und "apply" außer, dass sie anders heißen?
»» Gibt es sonst noch Alternativen?
Du koenntest den spiess umdrehen und Deine implementierung als »Behavior«,
als eine art »Interface« schreiben - also zuerst ein array-objekt erzeugen,
um dieses im nachhinein mit zusaetzlichem verhalten anzureichern:
/* insert code here */
Gute Idee. Ich habe es ein bißchen angepasst. Einziges Problem ist, dass ich beim Iteriren über den Slice auch die Methoden mitnehme.
for each( blub in aSlice) ... // Array + Methoden
aSlice.forEach( ...) // nur Array
Falls du da noch eine Lösung hättest, würde ich mich natürlich freuen. Ansonsten frimel ich mich da durch.
MfG Hase