> When you create a named function is is basically a static > object stored in funcname of the scope it was defined in. > when you declare a var in a function it is also a static > object attached to the function object. As such mydata is a > single static object and effectively a single object in the > global space of objects. So repeated calls to funcname that > set mydata will result in the last calls values be stored into mydata. > > With the anon function, you are actually creating multiple > functions each with its own mydata variable defined within > each anon function. The var statement DOES NOT work like it > does in C where the variable is created on the stack and is > unique to that function call at runtime. > > Does this sound right?
No, not at all. (Sorry!) The var statement DOES work just like a variable declaration in C. A variable declared in a function is not attached to the function object. It is created when the function is *called*, the same as in C, and free for garbage collection when the function returns - unless there is an outstanding reference to it as in the case of a closure. Even when there is a closure, a variable is still specific to a single invocation of the function in which it is declared. Also, it makes no difference if a function is named or anonymous. The scope rules are identical for either kind of function. I'll go look at the original problem, but I just wanted to correct this first. -Mike _______________________________________________ jQuery mailing list [email protected] http://jquery.com/discuss/
