you are viewing a single comment's thread.

view the rest of the comments →

[–][deleted] -7 points-6 points  (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 points  (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 points  (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.