<html><head></head><body style="word-wrap: break-word; -webkit-nbsp-mode: space; -webkit-line-break: after-white-space; ">I've added basic desugaring patterns to the class initialisers wiki page to clarify things.<div><br><div><div>On Mar 12, 2011, at 9:44 AM, Juan Ignacio Dopazo wrote:</div><br class="Apple-interchange-newline"><blockquote type="cite"><div class="gmail_quote"><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex;"><div style="word-wrap:break-word">(note correction in function c() {} example below.  the Object.create is an essential part of the semantics)</div>

</blockquote><div><br></div><div>That makes complete sense! So the resulting prototype will be a new object. Perfect!</div><div><br></div><blockquote class="gmail_quote" style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0.8ex; border-left-width: 1px; border-left-color: rgb(204, 204, 204); border-left-style: solid; padding-left: 1ex; ">

<table class="Bs nH iY" cellpadding="0" style="position: relative; -webkit-border-horizontal-spacing: 0px; -webkit-border-vertical-spacing: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; border-collapse: collapse; background-image: initial; background-attachment: initial; background-origin: initial; background-clip: initial; background-color: rgb(255, 255, 255); width: 980px; font-family: 'Times New Roman'; font-size: medium; ">

<tbody><tr><td class="Bu" style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; font-family: arial, sans-serif; vertical-align: top; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; ">

<div class="nH if" style="padding-top: 0px; padding-right: 0px; padding-bottom: 1px; padding-left: 0px; "><div class="nH"><div class="nH hx" style="color: rgb(0, 0, 0); padding-top: 4px; padding-right: 8px; padding-bottom: 4px; padding-left: 8px; ">

<div class="nH"><div class="nH"><div class="h7 ie j23lnd aW Jux0I" style="clear: both; padding-bottom: 0px; "><div class="Bk" style="position: relative; margin-bottom: 10px; border-right-width: 1px; border-bottom-width: 1px; border-left-width: 1px; border-top-style: solid; border-right-style: solid; border-bottom-style: solid; border-left-style: solid; border-top-color: rgb(239, 239, 239); border-right-color: rgb(239, 239, 239); border-left-color: rgb(239, 239, 239); border-bottom-color: rgb(226, 226, 226); border-top-width: 0px; border-top-left-radius: 7px 7px; border-top-right-radius: 7px 7px; border-bottom-right-radius: 7px 7px; border-bottom-left-radius: 7px 7px; width: 731px; ">

<div class="G3 G2" style="padding-top: 3px; background-color: rgb(255, 255, 255); border-right-width: 1px; border-bottom-width: 1px; border-left-width: 1px; border-right-style: solid; border-bottom-style: solid; border-left-style: solid; border-right-color: rgb(188, 188, 188); border-bottom-color: rgb(188, 188, 188); border-left-color: rgb(188, 188, 188); border-top-width: 1px; border-top-style: solid; border-top-color: rgb(188, 188, 188); border-top-left-radius: 7px 7px; border-top-right-radius: 7px 7px; border-bottom-right-radius: 7px 7px; border-bottom-left-radius: 7px 7px; ">

<div class="nH"><div id=":1b1"><div class="HprMsc"><div class="gs"><div id=":1c0" class="ii gt" style="font-size: 13px; margin-top: 5px; margin-right: 15px; margin-bottom: 5px; margin-left: 15px; padding-bottom: 20px; position: relative; z-index: 2; ">

<div id=":1c3"><div style="word-wrap: break-word; "><div><div><blockquote type="cite"><div class="im" style="color: rgb(80, 0, 80); "><div>Why were class bodies chosen as object initializers instead of function bodies?</div>

</div></blockquote></div></div><div><div class="im" style="color: rgb(80, 0, 80); "><div><span class="Apple-style-span" style="">In order to provide a declarative form  for the conventional constructor/prototype/instance "class" definition pattern.  In a declarative form you (or an implementation) can determine the initial "shape" of the objects (the complete set of properties) without having to either simulate  execution of the constructor or wait until runtime and observe actual execution of the constructor</span></div>

</div></div></div></div></div></div></div></div></div></div></div></div></div></div></div></div></div></td></tr></tbody></table></blockquote><div>I thought that would be the point, but I wasn't sure. Sounds great.</div>

<div><br></div><div>Thanks for clarifying my doubts!</div><div><br></div><div>Juan</div></div>
</blockquote></div><br></div></body></html>