I said "invocation of the function" for a reason
In that example the closure in JavaScript is bound to an internal data structure representing the call to curry_all. Therefore all of the closures created on the same call to curry_all will see the same item variable. That variable has the last value that it was assigned, which is from the last time through the loop.
I only bring it up because I got bitten by it and it took me a while to figure out what was happening. (And then to find out that it is supposed to do that according to the spec.)
As for your closure-object comparison, there is at best limited validity to that. (Yes, I've seen the same point made. And argued against it as well before.) True, a closure can be thought of as an object with only one method and no class. However conceptually this is a useless way to think, closures aren't just somewhat useless objects minus infrastructures, they're a different programming building block. With closures it is trivial to create an OO system. With OO you can't re-create closures.
If you've never used them, the difference in how you think isn't easy to communicate. About the best that I can do is to say that objects make good nouns, closures make good verbs.
Cheers,
Ben
I have come to believe that idealism without discipline is a quick road to disaster, while discipline without idealism is pointless. -- Aaron Ward (my brother)