JavaScript prototype chain -
i'm trying better understand relationship between object prototypes across different object instances created through same constructor.
say have this:
(function(ns){ ns.user = function(id){ this.name = "some name " + id; this.id = id; }; })(foo = foo || {}); foo.user.prototype = function(){ var getname = function(){return this.name;} return{ getname:getname }; }(); $(function(){ var approver = new foo.user("approver1"); alert(approver.getname()); //works fine, shows approver1 var approver2 = new foo.user("approver2"); alert(approver2.getname()); //works fine, shows approver2 approver.prototype.getname = function(){alert(this.name + " modified");} //<- doesn't work (why, if foo.user, approver, , approver2 js objects same prototype chain?) approver.getname = function(){alert(this.name + " modified way");} //<-re-defined way works approver object, not it's prototype came foo.user }); it's understanding approver's prototype should same foo.user.prototype since it's constructed foo.user. reference same prototype chain, right? same approver2, correct?
if reference same prototype chain that's prohibiting me modifying prototype object through approver object? appears approver.prototype.getname 'undefined' approver.getname() valid, don't if getname part of object's prototype definition.
does have fact foo.user function object approver/approver2 not?
i'm missing in relationship. thanks.
object instances not have prototype property. prototype of constructor used members can't found on instance: prototypical inheritance - writing up
Comments
Post a Comment