Hi,

I wrote some code today:

    var cos = Math.cos,
        sin = Math.sin,
        PI = Math.PI;

    // later:

    x1 = x + R*cos(t)*cos(angle) - r*sin(t)*sin(angle);

First of all, it made me realize that the usual example of 'with' (using with(Math) and an expression like I showed) turn out to be not so useful if we had destructuring (turning my 3 top lines into only one)

But it also made me realize that by default, destructuring returns unbound methods. It's perfect for the above use case, but may be annoying when you wish to extract functions bound to the object they're extracted from:

    var o = {a:1, f: function(){return this.a;}};
    var {f} = o;
    f(); // throw

It reminded me of an ECMAScript Regret submitted by Tom [1] about the fact that method are extracted unbound by default. And after a couple of tweets related to 'with' and the canvas API [2][3][4] I wonder: would it be worth having another syntactic form doing bound method extraction? I don't have an idea of what the syntax would look like, but it seems like a valuable idea.

David

[1] https://github.com/DavidBruant/ECMAScript-regrets/issues/13
[2] https://twitter.com/getify/status/231500606425145344
[3] https://twitter.com/rwaldron/status/231501699183960065
[4] https://twitter.com/rwaldron/status/231503439526518784
_______________________________________________
es-discuss mailing list
[email protected]
https://mail.mozilla.org/listinfo/es-discuss

Reply via email to