On Oct 30, 2011, at 12:33 PM, Allen Wirfs-Brock wrote:

> The object exemplar approach is just like self or selfish, except that it 
> builds upon features that are already in JS.  Specifically, it uses the new 
> operator instead of a new method and it names the initialization method 
> "constructor" in order to tie into the object construction mechanisms that 
> already exist in JS. 

+1

The only thing I find off the mark is the typography of <|. In light of this, 
and of the anti-grawlix reaction among many people, could we revisit an infix 
operator used in restricted productions with [no LineTerminator here] on the 
left of the operator contextual keyword?

Likely keywords include 'proto' (but 'protos' seems better English given the 
LHS being the prototype object), or my current best shot: 'beget'.

        let obj = base beget {a: 1, b: 2}
        let arr = base beget [p, q, r]
        let fun = base beget function (...args) { ... }
        let re  = base beget /(\w+)\s+(\w)+/g

It's still idiomatic as a name for differential inheritance, but it is more 
pithy than 'make' or 'create' (and one character shorter than 'create' -- no 
Unix 'creat' reruns! ;-). Comments?

Saying or writing "triangle" does not convey meaning, and it's confusing in 
geometry/graphics contexts.

While I still think 'class' is easier to teach, there's a risk if JS has 
'class' syntax that desugars to constructors with prototypes. And with your 
exemplar proposal, if we're really going to level the prototype/constructor 
playing field, then we need more than 'new'/'constructor' protocols for objects 
as well as functions. We need 'beget'.

/be
_______________________________________________
es-discuss mailing list
[email protected]
https://mail.mozilla.org/listinfo/es-discuss

Reply via email to