javascript - Finding the constructor in multi-level inheritance -


i want find out specific constructor used instantiate object in javascript, not 1 last in prototype chain. consider code :

function f(){}; function e(){}; function d(){}; function c(){}; function b(){}; function a(){};  e.prototype= new f(); d.prototype= new e(); c.prototype= new d(); b.prototype= new c(); a.prototype= new b();  a=new a(); 

find fiddle here

a.constructor returns function f(){}, want method returns function a(){}, since a constructor used instantiate object.

how can achieved ?

with way inherit parent it's not possible access original constructor, because when write

a.prototype = new b(); 

a.prototype.constructor indeed points b not a anymore.

with pattern prototypical inheritance have manually set constructor properly. either each extended class manually or can use helper function:

function inherit(c, p) {      c.prototype = new p();      c.prototype.constructor = c;  }    function f(){};  function e(){};  function d(){};  function c(){};  function b(){};  function a(){};    inherit(e, f);  inherit(d, e);  inherit(c, d);  inherit(b, c);  inherit(a, b);    var = new a();  var c = new c()    document.write( a.constructor + "<br>" );  document.write( c.constructor );


Comments

Popular posts from this blog

angularjs - ADAL JS Angular- WebAPI add a new role claim to the token -

php - CakePHP HttpSockets send array of paramms -

node.js - Using Node without global install -