molily: jslint und Crockfords memoizer-Funktion

Beitrag lesen

var foo = foo || [1, 2, 3];


>   
> fehlerfrei in JSLint: "Global foo"  
  
Hingegen:  
  
(function () {  
var foo = foo || [1, 2, 3];  
alert(foo);  
}());  
  
Error:  
Problem at line 2 character 11: Unexpected 'foo'.  
  
Gut, das Pattern ist auch vor allem global sinnvoll, denn nur da kann es dazu kommen, dass Scriptreihenfolge unterschiedlich ist. Der Async-Code von Google Analytics verwendet das beispielsweise. Denkbar wäre aber auch ein lokaler eval(), bei dem man dem eval-Code Variablen zur Verfügung stellen will.  
  
Mathias