Right, my bad then. Juan
On Sat, Mar 12, 2011 at 8:37 PM, Brendan Eich <bren...@mozilla.com> wrote: > On Mar 12, 2011, at 2:58 PM, Juan Ignacio Dopazo wrote: > > > Correct me if I'm wrong, but I think it should be like this: > > > > function S() {} > > > > function C() { > > Object.defineProperty(this, 'constructor', { > > value: C, > > enumerable: false, > > writable: false, > > configurable: false > > }); > > } > > C.prototype = Object.create(S.prototype); > > > > var o = new C(); > > console.log(o.constructor == C); // true > > console.log(o.constructor.prototype.constructor == S); // true > > But this also puts an own property on every instance, which is not how > .constructor works with functions: > > js> function C(x) { this.x = x; } > js> c = new C(42) > ({x:42}) > js> c.hasOwnProperty('x') > true > js> c.hasOwnProperty('constructor') > false > js> c.constructor > function C(x) {this.x = x;} > js> c.constructor === C > true > > /be > > > > > Juan > > > > > > On Sat, Mar 12, 2011 at 4:36 PM, Allen Wirfs-Brock < > al...@wirfs-brock.com> wrote: > > good point, the desugaring should be: > > > > function c() {}; > > c.prototype=Object.create(s,protoype,{'constructor': { value:c, > enumerable: false, writable: false, configurable:false}}); > > > > We can debate about the attributes of the constructor (and the > constructor's prototype) property but my stake in the ground is that these > should be frozen because they are defined declaratively. > > > > On Mar 12, 2011, at 11:06 AM, Michael Haufe wrote: > > > >> On Sat, Mar 12, 2011 at 11:02 AM, Allen Wirfs-Brock < > al...@wirfs-brock.com> wrote: > >> [...] > >> > class c { > >> > <proto: s.prototype> > >> > } > >> > >> > class c { > >> > <superclass: s> > >> > } > >> > >> > both are equivalent to: > >> > >> > function c() {}; > >> > c.prototype=Object.create(s.prototype); > >> [...] > >> > >> So if "var b = new c", then "b.constructor" will be "s" instead of "c"? > >> > >> > > > > > > _______________________________________________ > > 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 > >
_______________________________________________ es-discuss mailing list es-discuss@mozilla.org https://mail.mozilla.org/listinfo/es-discuss