On Nov 14, 2011, at 1:15 PM, Axel Rauschmayer wrote:

>> The class operator  can prefix any UnaryExpression, not just object 
>> literals.  That means that the class operator can be used to classify 
>> objects:
>> 
>> if (class p === Point) ...
>> 
>> Note that many object-oriented abstraction designers consider this for of 
>> class testing to be an anti-pattern. 
>> 
>> It also works with instances of the standard ES built-in constructors:
>> 
>> if (class new Array(1,2,3,4) === Array) ... //this will be true
>> 
>> so are these:
>> 
>> if (class [1,2,3,4] === Array) ...
>> if (class [].pop === Function) ...
> 
> Is it a good idea to overload this operator?
> 
> 1. class objectExemplar: “turn the `objectExemplar` into a class”
> 2. class obj: “get the class of obj”
> 
> I would give operator #2 the name `classof` and let `class` only return the 
> own property value of `constructor`.


I'm not over-loading the class operator. I the above I was simply pointing out 
that this is what the operator I defined does in those circumstances. The 
concept of a constructor function being the "class" of an object is one of 
those things that has been around JS apparently from the beginning. It just 
didn't have a suggestively named operator.  However an object is instantiated, 
this operator is simply reporting that the "class"of the object  whatever is 
accessible as the object's "constructor".

Allen



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

Reply via email to