You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Copy file name to clipboardExpand all lines: 1-js/09-classes/02-class-inheritance/article.md
+1-26Lines changed: 1 addition & 26 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -106,11 +106,7 @@ class Rabbit extends Animal {
106
106
}
107
107
```
108
108
109
-
<<<<<<< HEAD
110
-
...Mais en général, nous ne voulons pas remplacer totalement une méthode parente, mais plutôt construire dessus, modifier ou étendre ses fonctionnalités. Nous faisons quelque chose dans notre méthode, mais appelons la méthode parente avant / après ou dans le processus.
111
-
=======
112
-
Usually, however, we don't want to totally replace a parent method, but rather to build on top of it to tweak or extend its functionality. We do something in our method, but call the parent method before/after it or in the process.
113
-
>>>>>>> bf7d8bb1af3b416d393af1c15b03cb1352da1f9c
109
+
Mais en général, nous ne voulons pas remplacer totalement une méthode parente, mais plutôt construire dessus, modifier ou étendre ses fonctionnalités. Nous faisons quelque chose dans notre méthode, mais appelons la méthode parente avant / après ou dans le processus.
114
110
115
111
Les classes fournissent le mot clé `"super"` pour cela.
116
112
@@ -163,12 +159,8 @@ Maintenant, `Rabbit` a la méthode `stop` qui appelle le `super.stop()` du paren
163
159
````smart header="Les fonctions fléchées n'ont pas de `super`"
164
160
Comme mentionné dans le chapitre <info: arrow-functions>, les fonctions fléchées n'ont pas `super`.
165
161
166
-
<<<<<<< HEAD
167
162
Si on y accède, c'est tiré de la fonction externe. Par exemple:
168
-
=======
169
-
If accessed, it's taken from the outer function. For instance:
### Remplacer les champs de classe : une note délicate
299
285
300
286
```warn header="Note avancée"
301
287
Cette note suppose que vous avez une certaine expérience avec les classes, peut-être dans d'autres langages de programmation.
302
-
=======
303
-
### Overriding class fields: a tricky note
304
-
>>>>>>> bf7d8bb1af3b416d393af1c15b03cb1352da1f9c
305
288
306
289
Cela donne un meilleur aperçu du langage et explique également le comportement qui pourrait être une source de bogues (mais pas très souvent).
307
290
@@ -386,22 +369,14 @@ Dans notre cas, `Rabbit` est la classe dérivée. Il n'y a pas de `constructor()
386
369
387
370
Ainsi, `new Rabbit()` appelle `super()`, exécutant ainsi le constructeur parent, et (selon la règle pour les classes dérivées) seulement après que ses champs de classe sont initialisés. Au moment de l'exécution du constructeur parent, il n'y a pas encore de champs de classe `Rabbit`, c'est pourquoi les champs `Animal` sont utilisés.
388
371
389
-
<<<<<<< HEAD
390
372
Cette subtile différence entre les champs et les méthodes est propre à JavaScript.
391
-
=======
392
-
This subtle difference between fields and methods is specific to JavaScript.
393
-
>>>>>>> bf7d8bb1af3b416d393af1c15b03cb1352da1f9c
394
373
395
374
Heureusement, ce comportement ne se révèle que si un champ surchargé est utilisé dans le constructeur parent. Ensuite, il peut être difficile de comprendre ce qui se passe, alors nous l'expliquons ici.
396
375
397
376
Si cela devient un problème, on peut le résoudre en utilisant des méthodes ou des getters / setters au lieu de champs.
398
377
399
-
<<<<<<< HEAD
400
378
401
379
## Super: les internes, [[HomeObject]]
402
-
=======
403
-
## Super: internals, [[HomeObject]]
404
-
>>>>>>> bf7d8bb1af3b416d393af1c15b03cb1352da1f9c
405
380
406
381
```warn header="Informations avancées"
407
382
Si vous lisez le tutoriel pour la première fois - cette section peut être ignorée.
0 commit comments