> With "var bar = function() { ... };", I bet you run into self-recursion issues. Unless I'm mistaken, the variable "bar" isn't in the scope of the closure.
You're right, thanks for the correction. There is an alternative to the "function bar() { ... }" syntax that allows for recursion, though:
var bar;
bar = function() {
...
};
This is how CoffeeScript compiles function definitions, and it's what I meant to write. I'm not really sure yet about all the advantages and disadvantages when compared to the other format.
> You can probably disregard most of this rant, 'cause it's probably just as annoying either way.
Your rants are always welcome here! ^_^
---
Update: Sorry, rocketnia. Reading your comment more carefully I see you already talked about this:
> I believe that kind of statement assigns to a variable that's implicitly declared at the top of the current scope, meaning it's visible to itself and all the other functions declared that way, without the need for a "var bar, foo; bar = ...; foo = ...;" idiom.
I guess whether you use the explicit var declaration is largely a matter of taste. Declaring all variables explicitly at the top of the scope more transparent, but less concise. I suppose since CoffeeScript tends to declare other variables at the top of the scope, including functions variables in that group allows for a certain consistency.