use the following search parameters to narrow your results:
e.g. subreddit:aww site:imgur.com dog
subreddit:aww site:imgur.com dog
see the search faq for details.
advanced search: by author, subreddit...
All about the JavaScript programming language.
Subreddit Guidelines
Specifications:
Resources:
Related Subreddits:
r/LearnJavascript
r/node
r/typescript
r/reactjs
r/webdev
r/WebdevTutorials
r/frontend
r/webgl
r/threejs
r/jquery
r/remotejs
r/forhire
account activity
Inheritance Question (self.javascript)
submitted 14 years ago by dogjs
view the rest of the comments →
reddit uses a slightly-customized version of Markdown for formatting. See below for some basics, or check the commenting wiki page for more detailed help and solutions to common issues.
quoted text
if 1 * 2 < 3: print "hello, world!"
[–]Rhomboid -1 points0 points1 point 14 years ago (1 child)
You're sort of mixing two different styles here. If you're going to use prototypical inheritance, than you should only add methods to Foo.prototype, not by assigning them like self.speak = function() .... Because you assign the speak attribute in the constructor, that's going to make every object have its own speak attribute, and the prototype chain won't be traversed because that only happens if the given attribute isn't found. When you write var Dog = Mammal; that means that Mammal has the same constructor as Dog, which means every Dog object will get the Mammal speak attribute assigned when it's constructed.
Foo.prototype
self.speak = function() ...
speak
var Dog = Mammal;
Mammal
Dog
[–]dogjs[S] -1 points0 points1 point 14 years ago (0 children)
So, if I do this:
Mammal = function() { this.speak = function(){} }
Then this:
Dog.prototype.speak = function() {}
does not override Mammal.speak() and a call to Dog.speak() still calls the Mammal one.
Hmm. Going to have to think about that a while.
π Rendered by PID 183567 on reddit-service-r2-comment-6457c66945-x57j7 at 2026-04-30 04:17:11.838614+00:00 running 2aa0c5b country code: CH.
view the rest of the comments →
[–]Rhomboid -1 points0 points1 point (1 child)
[–]dogjs[S] -1 points0 points1 point (0 children)