Browse Source

Added superCtor to ctor.super_ instead superCtor.prototype.

This way let's us do deep comparison between object instances.

I have a suggestion for the sys.inherits function. Today it's impossible to
deep comparison between instance and class.

Take this snippet for example:

function ClassA() {}
function ClassB() {}

sys.inherits(ClassB, ClassA);

var instance = new ClassB();

The instance variable inherits from ClassA but we can't check it (which is
useful sometimes). You can compare the instance against ClassB
(instance.constructor == ClassB) but we can't compare it deeper
(instance.constructor.super == ClassA). The committed change simply assign
super to the super constructor instead of the super prototype.

I can't see any problem with this fix. You can still get the super constructor
by calling super_.prototype.
v0.7.4-release
Johan Dahlberg 15 years ago
committed by Ryan Dahl
parent
commit
9599d2d0e9
  1. 2
      src/node.js

2
src/node.js

@ -183,7 +183,7 @@ process.EventEmitter.prototype.listeners = function (type) {
process.inherits = function (ctor, superCtor) { process.inherits = function (ctor, superCtor) {
var tempCtor = function(){}; var tempCtor = function(){};
tempCtor.prototype = superCtor.prototype; tempCtor.prototype = superCtor.prototype;
ctor.super_ = superCtor.prototype; ctor.super_ = superCtor;
ctor.prototype = new tempCtor(); ctor.prototype = new tempCtor();
ctor.prototype.constructor = ctor; ctor.prototype.constructor = ctor;
}; };

Loading…
Cancel
Save