<div dir="ltr">I get that this isn't really the same, but I think one really viable solution for the scoped method problem (which is really just the expression problem, right?) is the proposed bind operator <a href="http://wiki.ecmascript.org/doku.php?id=strawman:bind_operator" target="_blank">http://wiki.ecmascript.org/doku.php?id=strawman:bind_operator</a><div>

<br></div><div>It doesn't use dots, so it won't mask the difference between the normal prototype chain with some additional scoped binding (for good or ill), but along with it comes the clarity and comfort of lexical binding and also the potential use of the module system.</div>

<div><br></div><div><div>    import {shuffle,each,filter} from "underscore2";</div><div>    </div><div>    myArray::shuffle();</div></div><div><br></div><div>And if that isn't enough because you need more polymorphic behavior, I think something like <a href="http://clojure.org/protocols">Clojure's protocols</a> could be implemented as a library to be used in conjunction.</div>
<div><br></div><div>- Russ</div></div>