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

