javascript - function prototype inheritance with new keyword -
i making sure understood javascript's new , prototype keywords correctly simple code put not behaving expect. var classa = function() { return { shout: function() { alert("i can shout"); } }; }; classa.prototype.shoutlouder = function() { alert("i can shout"); }; var instance = new classa(); instance.shout(); // why not available? instance.shoutlouder(); when instance variable attempts invoke shoutlouder it's failing "uncaught typeerror: instance.shoutlouder not function" . but, in mozilla docs , says when using new create object: a new object created, inheriting foo.prototype. where wrong in understanding? here jsbin above code-snippit. you're losing access function's (class') prototype object because you're returning new object out of function: var classa = function() { return { shout: function() { alert("i can shout"...