Files
Ilenia 08fc4014c7 fix(curriculum): Removing genitive from inside backticks and backticks from word own (#42466)
* inherit-behaviors-from-a-supertype put genitive outside backticks

* override-inherited-methods genitive outside backticks

* reset-an-inherited-constructor-property genitive outside backticks

* use-prototype-properties-to-reduce-duplicate-code genitive outisde backticks

* use-prototype-properties-to-reduce-duplicate-code own without backticks

* removing genitive by rephrasing

Co-authored-by: Shaun Hamilton <shauhami020@gmail.com>

Co-authored-by: Shaun Hamilton <shauhami020@gmail.com>
2021-06-14 17:52:28 +02:00

1.8 KiB

id, title, challengeType, forumTopicId, dashedName
id title challengeType forumTopicId dashedName
587d7db1367417b2b2512b86 Reset an Inherited Constructor Property 1 301324 reset-an-inherited-constructor-property

--description--

When an object inherits its prototype from another object, it also inherits the supertype's constructor property.

Here's an example:

function Bird() { }
Bird.prototype = Object.create(Animal.prototype);
let duck = new Bird();
duck.constructor

But duck and all instances of Bird should show that they were constructed by Bird and not Animal. To do so, you can manually set the constructor property of Bird to the Bird object:

Bird.prototype.constructor = Bird;
duck.constructor

--instructions--

Fix the code so duck.constructor and beagle.constructor return their respective constructors.

--hints--

Bird.prototype should be an instance of Animal.

assert(Animal.prototype.isPrototypeOf(Bird.prototype));

duck.constructor should return Bird.

assert(duck.constructor === Bird);

Dog.prototype should be an instance of Animal.

assert(Animal.prototype.isPrototypeOf(Dog.prototype));

beagle.constructor should return Dog.

assert(beagle.constructor === Dog);

--seed--

--seed-contents--

function Animal() { }
function Bird() { }
function Dog() { }

Bird.prototype = Object.create(Animal.prototype);
Dog.prototype = Object.create(Animal.prototype);

// Only change code below this line



let duck = new Bird();
let beagle = new Dog();

--solutions--

function Animal() { }
function Bird() { }
function Dog() { }
Bird.prototype = Object.create(Animal.prototype);
Dog.prototype = Object.create(Animal.prototype);
Dog.prototype.constructor = Dog;
Bird.prototype.constructor = Bird;
let duck = new Bird();
let beagle = new Dog();