"var derived = new base()" basically means:

  var derived = Object.create(base.prototype);
  derived.constructor = base;
  derived.constructor();

Which could be further deconstructed into:

  var derived = {};
  derived.__proto__ = base.prototype;
  derived.constructor = base;
  derived.constructor();

Which in turn is the same as:

var base = {
  construct: function() {
  },
}
var derived = Object.create(base);
derived.construct();

The way how "new" keyword and object.prototype work is confusing and
counterintuitive.
I would highly recommend you to use the last technique if possible.
You can create "derived2" object that inherits from "derived" object
like this:

var derived2 = Object.create(derived);
derived2.construct = {
  derived.construct.call(this);
}
derived2.construct();

-- 
To view archived discussions from the original JSMentors Mailman list: 
http://www.mail-archive.com/[email protected]/

To search via a non-Google archive, visit here: 
http://www.mail-archive.com/[email protected]/

To unsubscribe from this group, send email to
[email protected]

Reply via email to