Mark S. Miller (2013-07-31T14:31:18.000Z)
domenic at domenicdenicola.com (2013-08-02T20:42:01.728Z)
On Tue, Jul 30, 2013 at 10:56 PM, Brendan Eich <brendan at mozilla.com> wrote: > No, "friend" is shared between two classes, no way to make a closure per > instance extending over both constructors. Pretend the module above is an > IIFE. You're missing my point. My point is independent of whether there are two classes or one in the scope of your friend declaration. For simplicity let's say there's only class A. `this` binding only helps when a method is applied to its bound this, not to an argument. * It does not enable an instance of A to recognize that another instance of A is an A. * It does not avoid the storage cost of objects-as-closures, since you still need a function object per method per instance. > Ok, forget instanceof. With `this`-binding all around, what's the leak? > More generally, are you arguing that leaks are hard to avoid, so we need > private fields instead? That fits the relationship vs. unique symbol > dichotomy. If there is in fact no practical scenario for using unique symbols for privacy -- which is what we're exploring above -- then yes.