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
Notez une chose très intéressante. Les méthodes intégrées telles que `filter`, `map` et autres renvoient des nouveaux objets exactement du type hérité `PowerArray`. Leur implémentation interne utilise la propriété d'objet `constructor` pour cela.
25
25
26
26
Dans l'exemple ci-dessus,
27
+
27
28
```js
28
29
arr.constructor=== PowerArray
29
30
```
@@ -34,7 +35,7 @@ Encore plus, nous pouvons personnaliser ce comportement.
34
35
35
36
Nous pouvons ajouter un accésseur statique spécial `Symbol.species` à la classe. S'il existe, il devrait renvoyer le constructeur que JavaScript utilisera en interne pour créer de nouvelles entités dans `map`, `filter`, etc.
36
37
37
-
Si nous souhaitons que des méthodes intégrées comme `map` ou `filter` renvoient des tableaux classiques, nous pouvons retourner `Array` dans `Symbol.species`, comme ici:
38
+
Si nous souhaitons que des méthodes intégrées comme `map` ou `filter` renvoient des tableaux classiques, nous pouvons retourner `Array` dans `Symbol.species`, comme ici:
38
39
39
40
```js run
40
41
classPowerArrayextendsArray {
@@ -70,7 +71,7 @@ D'autres collections, telles que `Map` et `Set`, fonctionnent de la même maniè
70
71
71
72
## Pas d'héritage statique dans les éléments intégrés
72
73
73
-
Les objets intégrés ont leurs propres méthodes statiques, par exemple `Object.keys`,`Array.isArray` etc.
74
+
Les objets intégrés ont leurs propres méthodes statiques, par exemple `Object.keys`,`Array.isArray`, etc.
74
75
75
76
Comme nous le savons déjà, les classes natives s'étendent les uns des autres. Par exemple, `Array` extends `Object`.
0 commit comments