Minimalist (why) classes ?

Jake Verbaten raynos2 at gmail.com
Sun Nov 13 03:51:49 PST 2011


>
> Should `extend' copy all the properties? Only the "own" properties? I feel
> `own' properties make more sense.
>

I agree "own" makes more sense, we also want to specify whether we want to
extend "enumerable" properties. Your example does not.

>
>
> - Defining new objects that extends on the [[Prototype]], which is
> basically Object.create followed by copying the properties of one or more
> objects over to the new instance. (Object.clone? Object.inherit? I never
> felt `extend' quite says it all)
>
> Object.prototype.clone(Object parent, Object mixins...) → Object
> (Object.extend.apply(Object.**create(parent), mixins))
>

I've been referring to this method as
Object.make<https://github.com/Raynos/pd/blob/master/src/pd.js#L120>
it's
defiantly a useful method, however I don't think "clone", "inherit" or
"make" are correct names for it. "clone" is probably the most suitable
name, especially if it's on Object.prototype


> var foo = Base <| {
> #constant: 1, // or const
> @private_stuff: bar, // or private
> method1() { },
> method2() { }
> get stuff() { }
> }
>
> Except I'm not sure the @private could be made to work without creating
> confusing semantics around it, so object literals would still be one step
> behind.


As far as I understand "@private_stuff" would desugar into a name object
only available in scope of the object literal.

var o = {
  @private_stuff: bar;
  method1() { }
}

var o = (function () {
  var private_stuff = name.create();
  var ret = {
    method1() { }
  }
  ret[private_stuff] = bar;
})();

I personally don't find that confusing.
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://mail.mozilla.org/pipermail/es-discuss/attachments/20111113/d9b0ccb2/attachment.html>


More information about the es-discuss mailing list