Https://www.freecodecamp.org/learn/javascript-algorithms-and-data-structures/object-oriented-programming/set-the-childs-prototype-to-an-instance-of-the-parent

Tell us what’s happening:
Describe your issue in detail here.
What is the difference between
Dog.prototype = Object.create(Animal.prototype); AND
Dog = Object.create(Animal.prototype); ?

  **Your code so far**

function Animal() { }

Animal.prototype = {
constructor: Animal,
eat: function() {
  console.log("nom nom nom");
}
};

function Dog() { }

// Only change code below this line
Dog.prototype = Object.create(Animal.prototype);

let beagle = new Dog();
  **Your browser information:**

User Agent is: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/92.0.4515.131 Safari/537.36

Challenge: Set the Child’s Prototype to an Instance of the Parent

Link to the challenge:

I’m not sure exactly what you’re asking here but let me see if I can help.

If you were to run this:

function Animal(){};
function Dog(){}; \\ option 1 - the way in question
function Bog(){}; \\ option 2 - the way from example

Animal.prototype = {
  constructor: Animal,
  eat: function() {
  console.log("nom nom nom");
  }
};

Then this:

Dog = Object.create(Animal.prototype);

You’ve created an instance of Animal

Dog instanceof Animal \\ output true.

If you want the “Child class to inherit from the Parent class” hence the word inheritance:
you would do this:

Bog.prototype = Object.create(Animal.prototype);

You can make an object called foo of the type Bog but you can’t make an Object of type Dog.

I’ve run some code in a codepen to hopefully make it more clear. You can see the outputs here:

This topic was automatically closed 182 days after the last reply. New replies are no longer allowed.