20.08.2014, 22:47, "Brendan Eich" <[email protected]>:
> Alex Kocharin wrote:
>>  Still doesn't make much sense... This pattern (this instanceof ...) breaks 
>> another pattern (BaseClass.call(this)). Why first one is deprecated, not the 
>> second one?
>
> Fair point, and a topic at the last TC39 meeting was to *finally* add a
> way in JS to tell whether your constructor function was called via new
> or directly.
>>  I mean, I was able to subclass such a class with prototype injection 
>> without any issues, and it feels more natural in javascript after all.
>
> You mean using `new`? Mileage varies, but I agree that client code that
> uses `new` well can add clarity about costs and reference uniqueness
> (lack of aliasing).

I mean, not using `new`. JS is a functional language after all, and having a 
function that can't be called as a function is weird.

If constructor supports calling it without new, I can pass it around as a 
function, do this for example:

```
> ['foo', 'bar'].map(Error)
[ [Error: foo], [Error: bar] ]
```

With mandatory `new` this would be much less elegant.

I was about to construct realistically-looking chain with [fn1, fn2, 
fn3].map(Promise).forEach(addThenHandler), but FF already seem to throw on it. 
:(
_______________________________________________
es-discuss mailing list
[email protected]
https://mail.mozilla.org/listinfo/es-discuss

Reply via email to