.. cascade operator

Brendan Eich brendan at mozilla.org
Sat Jul 21 17:32:08 PDT 2012


See http://blog.mozilla.org/dherman/2011/12/01/now-thats-a-nice-stache/ 
-- I'm not sure there is a strawman on the wiki, though.

/be

Hugh Jackson wrote:
> Many js APIs rely heavily on chaining, which is somewhat limited, in 
> that the object upon which further methods are to be called has to be 
> returned; as well as providing setter methods.  Is there space in JS 
> for this proposal (taken from dart 
> <http://www.dartlang.org/articles/m1-language-changes/#cascades>)?:
>
>     query('#my-form').query('button') 
>
>     ..classes.add('toggle')
>
>     ..text = 'Click Me!' 
>
>     ..labels.add(toggleLabel);
>
>
> Which desugars to:
>
>     query('#my-form').query('button').classes.add('toggle'); 
>
>     query('#my-form').query('button').text = 'Click Me!';
>
>     query('#my-form').query('button'.labels.add(toggleLabel);
>
>
> IOW, .. evaluates the expression that follows it, and returns the 
> value of the previous expression (discarding the value returned from 
> the expression being evaluated).
>
> I understand that .{ has been considered in this context, but (afaic) 
> it doesn't seem to cover as many bases as minimally.
>
> Hugh
> _______________________________________________
> es-discuss mailing list
> es-discuss at mozilla.org
> https://mail.mozilla.org/listinfo/es-discuss


More information about the es-discuss mailing list