>> Is a dual role even necessary? Why not stick to just class declaration? 
>> Looking through the eyes of an outsider, class { ... } looks like a class 
>> declaration. Given that we already have typeof and instanceof, wouldn’t an 
>> outsider expect a name such as classof? Furthermore, if object exemplars and 
>> function exemplars are to exist in parallel. Then:
>> 
>>      function Foo() {};
>>      var f = new Foo();
>>      classof f === Foo // true
>> 
>>      let Foo = {};
>>      var f = new Foo();
> 
> This could succeed, due to 'constructor' inherited from Object.prototype. 
> But, it could fail if we require an own constructor, or at least an inherited 
> one whose value is a function object (or callable object if host) whose 
> .prototpye is the exemplar.
> 
>>      classof f === Foo // true
> 
> If new Foo() throws, you won't reach here, and all is consistent.


Sorry, mucked it up (shouldn’t email when tired):

     let Foo = { constructor: function() {} }; // or any valid object exemplar 
on the RHS, really
     var f = new Foo();
     classof f === Foo // true

-- 
Dr. Axel Rauschmayer
a...@rauschma.de

home: rauschma.de
twitter: twitter.com/rauschma
blog: 2ality.com



_______________________________________________
es-discuss mailing list
es-discuss@mozilla.org
https://mail.mozilla.org/listinfo/es-discuss

Reply via email to