Don P: jslint und Crockfords memoizer-Funktion

Beitrag lesen

Hallo,

var recur;
recur = ...

beruhigt jslint.

Dann ist recur aber eine lokale Variable innerhalb der Funktion "recur" und verweist nicht auf sich selbst ("recur").

bono345 hat schon recht. 'recur' wird dadurch nicht privater, als bei der Zuweisung während der Deklaration. Nach var recur; ist die Variable angelegt und kann dann auch benutzt werden, ohne dass JSLint meckert.

Abgesehen davon ist der Code from Mr. JSLint persönlich.

JSLint übertreibt's zuweilen mit den Meldungen.

Nach einem for(var i=0; i<l; i++){ */...*/ } verweigert es knallhart die Weiterverarbeitung, weil 'i' innerhalb der Schleife definiert wird, statt am Anfang der Funktion. Das finde ich wirklich übertrieben, denn wenn man solche Laufvariablen immer außerhalb definiert, kann man eine solche Konstuktion nicht mehr einfach mit Copy&Paste woanders wiederverwenden, sondern muss immer aufpassen, das man auch die Variablendefinition mitnimmt.

Aber Crocki schreibt ja auch ganz deutlich bei JSLint: "WARNING: JSLint will hurt your feelings."
Da hast du den Salat ;)

Gruß, Don P