I am new to prototype inheritance, so I'm trying to figure out the βrightβ way. I thought I could do this:
if (typeof Object.create !== 'function') { Object.create = function (o) { function F() {} F.prototype = o; return new F(); }; } var tbase = {}; tbase.Tdata = function Tdata() {}; tbase.Tdata.prototype.say = function (data) { console.log(data); }; var tData = new tbase.Tdata(); tbase.BicData = Object.create(tData); tbase.BicData.prototype.say = function (data) { console.log("overridden: " + data) }; tbase.BicData.prototype.shout = function (data, temp) { console.log("SHOUT: " + data + ", " + temp) }; var test = new tbase.BicData(); tData.say("test1"); test.say("test2"); test.shout("test3", "hope"); if (typeof Object.create !== 'function') { Object.create = function (o) { function F() {} F.prototype = o; return new F(); }; } var tbase = {}; tbase.Tdata = function Tdata() {}; tbase.Tdata.prototype.say = function (data) { console.log(data); }; var tData = new tbase.Tdata(); tbase.BicData = Object.create(tData); tbase.BicData.prototype.say = function (data) { console.log("overridden: " + data) }; tbase.BicData.prototype.shout = function (data, temp) { console.log("SHOUT: " + data + ", " + temp) }; var test = new tbase.BicData(); tData.say("test1"); test.say("test2"); test.shout("test3", "hope");
But instead, I get " tbase.BicData.prototype undefined "
In Java they say that I want to have Tdata strong> as the template interface, BicData strong>, to be an implementation of this, and then create objects from it.
Where am I going wrong?
javascript inheritance prototype object-create
robinhowlett
source share