Hi! I hope you don't mind a couple of questions about this proposal.

The <superclass> meta property definition says:

This causes the [[Prototype]] value of the new class’ prototype to be set to
> the prototype property value of the designated constructor function


Shouldn't the superclass' prototype be chained with the class' constructor
prototype instead of replacing it, as in Douglas Crockford's prototypal
inheritance article <http://javascript.crockford.com/prototypal.html>? I
believe this is easier to understand and less error prone, because when
modifying properties in the new class prototype they won't be added to the
superclass' prototype.

Why were class bodies chosen as object initializers instead of function
bodies? Function bodies allow for a couple of good concepts such as defining
private variables by default with the var statement, avoiding the use of the
this keyword for private variables and thus producing shorter code when
minified.

Also, what happens to methods in these proposal? Are they defined as
properties of the instance or as part of the prototype? If they are fresh
instance properties, is there a method for defining prototype methods when
using the <superclass> meta property?


Thanks! Harmony is looking awesome!
Regards,

Juan


On Wed, Mar 9, 2011 at 11:53 PM, Allen Wirfs-Brock <al...@wirfs-brock.com>wrote:

> I've updated all of the Harmony extended object literal proposals
> http://wiki.ecmascript.org/doku.php?id=strawman:object_initialiser_extensions 
> based
> upon discussions at the last several TC39 meetings.  In particular a very
> productive informal discussion at the Sept. meeting.
>
> The major change in this iterations is a new "class" declaration based upon
> object literals. This declaration supports the declarative object definition
> that exactly mirrors the constructor/prototype/instance organization used by
> the EMAScript built-in objects.
>
> I also did some updates to the Private Names proposal
> http://wiki.ecmascript.org/doku.php?id=strawman:private_names to clarify
> some issues that have come up in previous meetings. There is also a proposal
> for integrating Private Names with the extended object literals.
>
> These items are on the agenda for the next TC39 meeting but discussion here
> is certainly welcome.
>
> Allen
>
> _______________________________________________
> es-discuss mailing list
> es-discuss@mozilla.org
> https://mail.mozilla.org/listinfo/es-discuss
>
>
_______________________________________________
es-discuss mailing list
es-discuss@mozilla.org
https://mail.mozilla.org/listinfo/es-discuss

Reply via email to