Skip to content

Commit 056ea1e

Browse files
Apply minor fixes in '1-js/09-classes/03-static-properties-methods/3-class-extend-object/solution.md'
1 parent 62a223d commit 056ea1e

File tree

1 file changed

+8
-8
lines changed
  • 1-js/09-classes/03-static-properties-methods/3-class-extend-object

1 file changed

+8
-8
lines changed

1-js/09-classes/03-static-properties-methods/3-class-extend-object/solution.md

Lines changed: 8 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@ Voyons d'abord pourquoi ce dernier code ne fonctionne pas.
22

33
La raison devient évidente si nous essayons de l'exécuter. Un constructeur de classe héritant doit appeler `super()`. Sinon `"this"` ne sera pas "défini".
44

5-
Alors, voici la solution:
5+
Alors, voici la solution :
66

77
```js run
88
class Rabbit extends Object {
@@ -23,12 +23,12 @@ Mais ce n'est pas tout.
2323

2424
Même après le correctif, il existe toujours une différence importante entre `"class Rabbit extends Object"` et `class Rabbit`.
2525

26-
Comme on le sait, la syntaxe "extend" configure deux prototypes:
26+
Comme on le sait, la syntaxe "extends" configure deux prototypes :
2727

2828
1. Entre le `"prototype"` des fonctions du constructeur (pour les méthodes).
29-
2. Entre les fonctions du constructeur elles-mêmes (pour les méthodes statiques).
29+
2. Entre les fonctions constructeur elles-mêmes (pour les méthodes statiques).
3030

31-
Dans notre cas, pour `class Rabbit extends Object`, cela signifie:
31+
Dans notre cas, pour `class Rabbit extends Object`, cela signifie :
3232

3333
```js run
3434
class Rabbit extends Object {}
@@ -37,7 +37,7 @@ alert( Rabbit.prototype.__proto__ === Object.prototype ); // (1) true
3737
alert( Rabbit.__proto__ === Object ); // (2) true
3838
```
3939

40-
Donc `Rabbit` donne maintenant accès aux méthodes statiques de `Object` via `Rabbit`, comme ceci:
40+
Donc `Rabbit` donne maintenant accès aux méthodes statiques de `Object` via `Rabbit`, comme ceci :
4141

4242
```js run
4343
class Rabbit extends Object {}
@@ -50,7 +50,7 @@ alert ( Rabbit.getOwnPropertyNames({a: 1, b: 2})); // a,b
5050

5151
Mais si nous n’avons pas `extends Object`, alors `Rabbit.__proto__` n'est pas défini sur `Object`.
5252

53-
Voici la démo:
53+
Voici la démo :
5454

5555
```js run
5656
class Rabbit {}
@@ -69,11 +69,11 @@ Donc, `Rabbit` ne donne pas accès aux méthodes statiques de `Object` dans ce c
6969

7070
En passant, `Function.prototype` a des méthodes de fonction "génériques", comme `call`, `bind`, etc. Elles sont finalement disponibles dans les deux cas, car pour le constructeur `Object` intégré, `Object.__proto__ === Function.prototype`.
7171

72-
Voici l'image:
72+
Voici l'image :
7373

7474
![](rabbit-extends-object.svg)
7575

76-
Donc, pour faire court, il y a deux différences:
76+
Donc, pour faire court, il y a deux différences :
7777

7878
| class Rabbit | class Rabbit extends Object |
7979
|--------------|------------------------------|

0 commit comments

Comments
 (0)