Ø Currently is JS, x['foo'] and x.foo are precisely identical in all contexts.
This is true when the string contains a is a legal identifier and false
otherwise. The [] syntax is a superset of the '.' syntax. The proposal
preserves this through the use of "#" expression, e.g.,
private x;
this.x = 1;
is equivalent to
private x;
this[#.x] = 1;
which means it is still regular. What it doesn't preserve is the property name
is always representable as a string. The property name becomes a plus type of
String+Name. With proxies it becomes a String+Name+ProxiedName type where the
ProxiedName is used to hide the Name value.
Chuck.
From: [email protected] [mailto:[email protected]] On
Behalf Of Mark S. Miller
Sent: Thursday, December 16, 2010 2:19 PM
To: Kris Kowal
Cc: [email protected]
Subject: Re: New private names proposal
On Thu, Dec 16, 2010 at 1:58 PM, Kris Kowal
<[email protected]<mailto:[email protected]>> wrote:
On Thu, Dec 16, 2010 at 1:53 PM, David Herman
<[email protected]<mailto:[email protected]>> wrote:
>
> function Point(x, y) {
> private x, y;
> this.x = x;
> this.y = y;
> ...
> }
>
> than
>
> function Point(x, y) {
> var _x = gensym(), _y = gensym();
> this[_x] = x;
> this[_y] = y;
> }
I tend to disagree with most developers, so take it with a grain of
salt that I find the latter form, with all the implied abilities,
easier to understand.
I do too. While terseness clearly contributes to understandability, regularity
and simplicity do too. When these conflict, we should be very careful about
sacrificing regularity.
Currently is JS, x['foo'] and x.foo are precisely identical in all contexts.
This regularity helps understandability. The terseness difference above is not
an adequate reason to sacrifice it.
Kris Kowal
_______________________________________________
es-discuss mailing list
[email protected]<mailto:[email protected]>
https://mail.mozilla.org/listinfo/es-discuss
--
Cheers,
--MarkM
_______________________________________________
es-discuss mailing list
[email protected]
https://mail.mozilla.org/listinfo/es-discuss