peterS.: [apply] und [call] sowie »for (key in obj) {...}« bzw. [forEach]

Beitrag lesen

hallo again Hase,

... BTW, gibt es einen Unterschied zwischen "call" und "apply" außer,
dass sie anders heißen?

beide methoden delegieren ein objekt an eine andere methode, die diesem
objekt nicht selber *gehoert*. diese wird dann im kontext des delegierten
objekts ausgefuehrt.
das jeweils erste argument fuer [call] bzw. [apply] steht fuer genau dieses
zu delegierende objekt; bei [call] steht jedes weitere argument eins zu eins
fuer den jeweiligen parameter der auf dieses objekt anzuwendenden methode,
waehrend [apply] als zweites und letztes argument nur eine liste aller
parameter der auf dieses objekt anzuwendenden methode akzeptiert.

... 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

  
  
so soll es doch auch sein ...  
  
... `for (propertyName in obj)`{:.language-javascript} ... durchlaeuft alle iterierbaren eigenschaften  
eines objekts unabhaengig davon, ob sie diesem objekt unmittelbar gehoeren  
oder diesem nur ueber die verkettung aller objekt-prototypen zugeordnet werden  
koennen, wohingegen die array-methode [forEach] natuerlich nur alle indizierten  
member eines array-objekts durchlaeuft.  
  
in Deinem fall gehoeren alle zusaetzlich ueber das [»Behavior/Interface«-muster](http://forum.de.selfhtml.org/archiv/2009/1/t182429/#m1207797)  
auf das array-objekt applizierten oeffentlichen eigenschaften/methoden genau  
diesem array-objekt und werden natuerlich von ... `for (propertyName in obj)`{:.language-javascript} ...  
erfasst.  
  
... wo genau siehst Du jetzt ein problem?  
  
  
so long - 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](http://javascript.crockford.com/)  
  
[ie:( fl:) br:> va:( ls:& fo:) rl:) n3;} n4:} ss:} de:µ js:} mo:? zu:\]](http://www.peter.in-berlin.de/projekte/selfcode/?code=ie%3A%28+fl%3A%29+br%3A%3E+va%3A%28+ls%3A%26+fo%3A%29+rl%3A%29+n3%3B%7D+n4%3A%7D+ss%3A%7D+de%3A%B5+js%3A%7D+mo%3A%3F+zu%3A%5D)