Static local variables
myemailum14 at gmail.com
myemailum14 at gmail.com
Mon Aug 10 19:48:16 UTC 2015
-1
On Mon, Aug 10, 2015 at 2:39 PM, joe <joeedh at gmail.com> wrote:
> Eek, this is even worse than I though. From the previous discussion:
>
> If "static" means "shared per-Function-object" or "shared per
> activation of the enclosing scope of the
> static's scope", we quickly run into weird behavior. Another
> example, on top of Waldemar's:
>
> function foo() { function nextID() { static s = 0; return
> s++; } ... ... }
>
> Imagine what a programmer who wants nextID to produce unique ids
> would think upon discovering
> that it doesn't. What could the bug possibly be? Moving nextID out
> to global scope fixes it. Think
> how crazy this is. The function doesn't even refer to anything in
> its scope-- yet its scope affects its
> behavior?
>
> IIRC, my code hoists all the way to module scope, so that example
> would work as intended. But that's the problem: it's not at all clear
> to me that it *should* work that way. Even worse, perhaps it *should*
> work, but *not* this:
>
> function foo() { var nextID = function() { static s = 0;
> return s++; } ... ... }
>
> eek! This is even worse than the existential operator in terms of
> unintended consequences.
>
> I've been feeling guilty for not sharing my experience with this
> feature, since I do use it a lot. I recently implemented ES6 modules
> as a little require.js loader plugin (it only transpiles the module
> syntax, since Chrome now has most everything else in ES6), perhaps
> I'll write a little plugin for this, too. Then I can use it in only
> the half-dozen or so files that really need it.
>
> Joe
>
> Joe
> _______________________________________________
> es-discuss mailing list
> es-discuss at mozilla.org
> https://mail.mozilla.org/listinfo/es-discuss
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://mail.mozilla.org/pipermail/es-discuss/attachments/20150810/c02743de/attachment.html>
More information about the es-discuss
mailing list