On Oct 1, 2012, at 12:21 PM, Brendan Eich wrote:
...
> The best reason for using Object is the one Mark raised: class (as sugar for 
> constructor/prototype) uses Object.
> 
> But if you've read the thread this far, my objective is not to enforce one 
> implementation approach or the other. It's to use @@toStringTag and anything 
> like it so there's no observable difference between the two approaches. 
> Classes should be able to do likewise.
> 
> Otherwise we have
> 
>  class C extends B {...}
> 
> and
> 
>  C.prototype instanceof Object
> 
> when the cowpath today wants
> 
>  C.prototype instanceof B

I'm not sure  what you are arguing for/against with the above point about 
instanceof.  

instanceof is it's own mechanism that is independent of toString,  [[Class]] 
tagging, or any concept that is used in section 15 of  ES<=5.1 when it is 
talking about instances of the various built-ins.  About the best you can do is 
create a table that compares all the various mechanism that do something like 
an "instance of" check against the actual built-in and look for the 
consistencies/inconsistencies. 

The current spec. language for class definitions would produce true for 
C.prototype instanceof B and false for C.prototype instanceof C.  But it would 
also answer true for C.prototype instanceof Object and B.prototype instanceof 
Object.

If there is an inconsistency here, it is that C.prototype claims to be 
instanceof B but in fact probably hasn't been initialized using the B 
constructor so it can't actually behave as a B instance.

Allen


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

Reply via email to