diff --git a/1-js/09-classes/02-class-inheritance/article.md b/1-js/09-classes/02-class-inheritance/article.md index 7ea77d8d..c49b9f70 100644 --- a/1-js/09-classes/02-class-inheritance/article.md +++ b/1-js/09-classes/02-class-inheritance/article.md @@ -61,10 +61,10 @@ Internally, `extends` keyword works using the good old prototype mechanics. It s ![](animal-rabbit-extends.svg) -For instance, to find `rabbit.run` method, the engine checks: -1. The `rabbit` object (has no `run`, only `name`). +For instance, to find `rabbit.run` method, the engine checks (bottom-up on the picture): +1. The `rabbit` object (has no `run`). 2. Its prototype, that is `Rabbit.prototype` (has `hide`, but not `run`). -3. Its prototype, that is (due to `extends`) `Animal.prototype`, that finally has the method. +3. Its prototype, that is (due to `extends`) `Animal.prototype`, that finally has the `run` method. As we can recall from the chapter , JavaScript uses prototypal inheritance for build-in objects. E.g. `Date.prototype.[[Prototype]]` is `Object.prototype`, so dates have generic object methods.