* fix: remove isHidden flag from frontmatter * fix: add isUpcomingChange Co-authored-by: Ahmad Abdolsaheb <ahmad.abdolsaheb@gmail.com> * feat: hide blocks not challenges Co-authored-by: Ahmad Abdolsaheb <ahmad.abdolsaheb@gmail.com> Co-authored-by: Ahmad Abdolsaheb <ahmad.abdolsaheb@gmail.com>
2.2 KiB
2.2 KiB
id, title, challengeType, forumTopicId
| id | title | challengeType | forumTopicId |
|---|---|---|---|
| 587d7db1367417b2b2512b86 | Reset an Inherited Constructor Property | 1 | 301324 |
Description
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 // function Animal(){...}
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 Bird's constructor property to the Bird object:
Bird.prototype.constructor = Bird;
duck.constructor // function Bird(){...}
Instructions
duck.constructor and beagle.constructor return their respective constructors.
Tests
tests:
- text: <code>Bird.prototype</code> should be an instance of <code>Animal</code>.
testString: assert(Animal.prototype.isPrototypeOf(Bird.prototype));
- text: <code>duck.constructor</code> should return <code>Bird</code>.
testString: assert(duck.constructor === Bird);
- text: <code>Dog.prototype</code> should be an instance of <code>Animal</code>.
testString: assert(Animal.prototype.isPrototypeOf(Dog.prototype));
- text: <code>beagle.constructor</code> should return <code>Dog</code>.
testString: assert(beagle.constructor === Dog);
Challenge Seed
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();
Solution
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();