1UnitedPower: Mehrdimensionales Array verhält sich fraglich

Beitrag lesen

Hakuna matata!

  • Wozu dient in diesem Fall das Window Objekt?

Funktionen können bekanntermaßen über das this-Schlüsselwort auf einen Kontext zugreifen. Im Normalfall greifen Objekt-Methoden so auf ihre Objektinstanz zu. Wenn man mit Function.prototype.bind() eine Funktion an Parameter bindet, erzeugt man eigentlich eine neue Funktion. Dieser neuen Funktion muss man mitteilen, auf welches Objekt sich das this-Keyword beziehen soll. Wenn es für die Funktion uninteressant ist, weil sie das this-Keyword nicht benutzt, übergibt man wahlweise null oder window, damit drückt also nur aus, dass der Kontext in diesem Zusammen nicht weiter wichtig ist.

  • Ist eine forEach schleife technisch besser als eine for schleife? Wo ist der direkte Unterschied (Außer in der besseren Handhabung)

for ist eine Schleife. Bei einer for-Schleife musst du selber die Lokik implementieren, WIE über das Array iteriert werden soll. Deshalb braucht man die Zählvariable i, die man selber initialisieren, hochzählen und mit dem Maximum vergleichen muss. Dabei ergeben sich natürlich viele Varianten, man könnte auch runterzählen oder nur bis zur Hälfte zählen. Außerdem könnte man die Zählvariable auch im Schleifenkörper noch verändern. Wenn man beim Lesen eines Quelltextes über eine for-Schleife stolpert, kann man deshalb nicht sofort sagen, WAS die Schleife eigentlich macht, dazu muss man sich den kompletten Schleifenkopf und Schleifenkörper anschauen.

Array.prototype.forEach() ist eine Methode. Dabei ist sofort klar WAS die Methode macht. Sie iteriert nämlich über ein Array, über das WIE muss sich der Programmierer keine Gedanken mehr machen. Wenn man beim Lesen eines Quelltextes über einen Aufruf von forEach() stößt, kann man deshalb sofort sagen, WAS da passiert. Im Gegensatz zur for-Schleife ist der Code also selbsterklärend.

Außerdem ist forEach im Gegensatz zur for-Schleife eine Funktion, und Funktionen kann man als Parameter an andere Funktionen übergeben, Funktionen können Funktionen zurückgeben, man kann sie kombinieren, ausführen oder sogar nur teilweise ausführen. Mit for-Schleifen geht das alles nicht.

--
“All right, then, I'll go to hell.” – Huck Finn