Re:Treating JavaScript like a 30 year old language
by MatthewPhillips on Wednesday July 04, 2012 @12:00PM
(#4199848)
Some people think that library consumers shouldn't have to use new. Instead they should call a factory function (which itself calls new).
[ Parent
| on HN ]
Re:Treating JavaScript like a 30 year old language
by phleet on Wednesday July 04, 2012 @12:09PM
(#4199884)
Here's an argument in favor of not requiring library consumers to use new by the author of the Raphäel library: http://dmitry.baranovskiy.com/post/something-new
Re:Treating JavaScript like a 30 year old language
by orangecat on Wednesday July 04, 2012 @01:08PM
(#4200114)
And I agree with that. "new" exposes too much implementation detail: it always allocates an object, and it's exactly the type specified, neither of which callers should normally care about. I much prefer how Python does it.
Re:Treating JavaScript like a 30 year old language
by ufo on Wednesday July 04, 2012 @04:26PM
(#4200755)
Actually, in Javascript you can preemptively return a value of a different type from the constructor instead of relying on the implicit `return this` at the end.
That said, I agree that the way "new" specifies the concrete type of the returned value is pure evil. In OO things should be typed according to their interfaces, not according to their concrete implementations.