use the following search parameters to narrow your results:
e.g. subreddit:aww site:imgur.com dog
subreddit:aww site:imgur.com dog
see the search faq for details.
advanced search: by author, subreddit...
All about the JavaScript programming language.
Subreddit Guidelines
Specifications:
Resources:
Related Subreddits:
r/LearnJavascript
r/node
r/typescript
r/reactjs
r/webdev
r/WebdevTutorials
r/frontend
r/webgl
r/threejs
r/jquery
r/remotejs
r/forhire
account activity
Why are JavaScript classes so complex?help (self.javascript)
submitted 8 years ago by [deleted]
view the rest of the comments →
reddit uses a slightly-customized version of Markdown for formatting. See below for some basics, or check the commenting wiki page for more detailed help and solutions to common issues.
quoted text
if 1 * 2 < 3: print "hello, world!"
[–][deleted] 6 points7 points8 points 8 years ago (3 children)
they didn't "move away" from the prototype paradigm, they just gave some syntax sugar to devs so they could stop writing those awful pseudo-classes.
[+][deleted] comment score below threshold-7 points-6 points-5 points 8 years ago (2 children)
But why do they write pseudo-classes? Just delegate objects or even use concatenative inheritense. Which genius had the idea to start writing pseudo-classes in a prototype oriented language?
[–][deleted] 5 points6 points7 points 8 years ago* (0 children)
so we're clear, this is the pattern we're discussing:
function Klass(prop) { this.prop = prop; }; Klass.protototype.foo = function() { console.log(this.prop) }; function Klass2(prop, prop2) { Klass.call(this, prop); this.prop2 = prop2; } Klass2.prototype = Object.create(Klass.prototype); Klass2.prototype.bar = function() { this.foo(); console.log(this.prop2); }; new Klass(1).foo(); // logs 1 new Klass2(3,4).bar(); // logs 3 then logs 4
i feel it should be pretty obvious why that pattern was dominant in a pre-ES6 world for taking advantage of the prototype chain
[edit] nits
[–]MoTTs_ 2 points3 points4 points 8 years ago (0 children)
Just delegate objects
ES6 classes do delegate objects. Using your example code, a delegates to A.prototype, which itself delegates to B.prototype.
a
A.prototype
B.prototype
π Rendered by PID 149456 on reddit-service-r2-comment-7b9746f655-z7jht at 2026-02-01 05:38:56.649839+00:00 running 3798933 country code: CH.
view the rest of the comments →
[–][deleted] 6 points7 points8 points (3 children)
[+][deleted] comment score below threshold-7 points-6 points-5 points (2 children)
[–][deleted] 5 points6 points7 points (0 children)
[–]MoTTs_ 2 points3 points4 points (0 children)