Skip to content

Commit 66e5a0c

Browse files
Apply minor fixes in '1-js/08-prototypes/02-function-prototype/article.md'
1 parent 5e07701 commit 66e5a0c

File tree

1 file changed

+17
-17
lines changed
  • 1-js/08-prototypes/02-function-prototype

1 file changed

+17
-17
lines changed

1-js/08-prototypes/02-function-prototype/article.md

Lines changed: 17 additions & 17 deletions
Original file line numberDiff line numberDiff line change
@@ -5,14 +5,14 @@ Rappelez-vous que de nouveaux objets peuvent être créés avec une fonction con
55
Si `F.prototype` est un objet, alors l'opérateur `new` l'utilise pour définir `[[Prototype]]` pour le nouvel objet.
66

77
```smart header="Veuillez noter"
8-
JavaScript avait l'héritage prototypique depuis le début. C'était l'une des caractéristiques principales de la langue.
8+
JavaScript avait l'héritage prototypique depuis le début. C'était l'une des caractéristiques principales du langage.
99
1010
Mais dans le passé, il n'y avait pas d'accès direct. La seule chose qui fonctionnait de manière fiable est une propriété `"prototype"` de la fonction constructeur décrite dans ce chapitre. Donc, il y a beaucoup de scripts qui l'utilisent encore.
1111
```
1212

1313
Veuillez noter que `F.prototype` signifie ici une propriété régulière nommée `"prototype"` sur `F`. Cela ressemble quelque peu au terme "prototype", mais nous entendons ici une propriété régulière portant ce nom.
1414

15-
Voici l'exemple:
15+
Voici l'exemple :
1616

1717
```js run
1818
let animal = {
@@ -32,27 +32,27 @@ let rabbit = new Rabbit("White Rabbit"); // rabbit.__proto__ == animal
3232
alert( rabbit.eats ); // true
3333
```
3434

35-
Définir `Rabbit.prototype=animal` énonce littéralement ce qui suit: "Lorsqu'un `new Rabbit` est créé, assigner son `[[Prototype]]` à `animal`".
35+
Définir `Rabbit.prototype=animal` énonce littéralement ce qui suit : "Lorsqu'un `new Rabbit` est créé, assigner son `[[Prototype]]` à `animal`".
3636

37-
C'est l'image résultante:
37+
Voici l'image résultante :
3838

3939
![](proto-constructor-animal-rabbit.svg)
4040

4141
Sur l'image, `"prototype"` est une flèche horizontale, ce qui signifie une propriété normale, et `[[Prototype]]` est vertical, ce qui signifie l'héritage de `rabbit` de `animal`.
4242

4343
```smart header="`F.prototype` utilisé uniquement pendant `new F`"
44-
La propriété `F.prototype` est utilisée uniquement lorsque `new F` est appelé, elle attribue `[[Prototype]]` du nouvel objet. Après cela, il n'y a plus de connexion entre `F.prototype` et le nouvel objet.
44+
La propriété `F.prototype` est utilisée uniquement lorsque `new F` est appelé, elle attribue `[[Prototype]]` du nouvel objet. Après cela, il n'y a plus de connexion entre `F.prototype` et le nouvel objet.
4545

4646
Si, après la création, la propriété `F.prototype` change (`F.prototype = <un autre objet>`), les nouveaux objets créés par `new F` auront un autre objet comme `[[Prototype]]`, mais les objets déjà existants conservent l'ancien.
4747
```
4848
4949
## F.prototype par défaut, propriété du constructeur
5050
51-
Chaque fonction a la propriété `"prototype "` même si nous ne la fournissons pas.
51+
Chaque fonction a la propriété `"prototype"` même si nous ne la fournissons pas.
5252
5353
Le `"prototype"` par défaut est un objet avec comme seule propriété `constructor` qui renvoie à la fonction elle-même.
5454
55-
Comme ça:
55+
Comme ça :
5656
5757
```js
5858
function Rabbit() {}
@@ -64,7 +64,7 @@ Rabbit.prototype = { constructor: Rabbit };
6464

6565
![](function-prototype-constructor.svg)
6666

67-
Nous pouvons le vérifier:
67+
Nous pouvons le vérifier :
6868

6969
```js run
7070
function Rabbit() {}
@@ -74,7 +74,7 @@ function Rabbit() {}
7474
alert( Rabbit.prototype.constructor == Rabbit ); // true
7575
```
7676

77-
Naturellement, si nous ne faisons rien, la propriété `constructor` est disponible pour tous les "rabbits" via `[[Prototype]]`:
77+
Naturellement, si nous ne faisons rien, la propriété `constructor` est disponible pour tous les "rabbits" via `[[Prototype]]` :
7878

7979
```js run
8080
function Rabbit() {}
@@ -90,7 +90,7 @@ alert(rabbit.constructor == Rabbit); // true (de prototype)
9090

9191
Nous pouvons utiliser la propriété `constructor` pour créer un nouvel objet en utilisant le même constructeur que l'existant.
9292

93-
Comme ici:
93+
Comme ici :
9494

9595
```js run
9696
function Rabbit(name) {
@@ -111,11 +111,11 @@ Mais probablement la chose la plus importante à propos de `"constructor"` est q
111111

112112
**...JavaScript lui-même n'assure pas la bonne valeur de `"constructor"`.**
113113

114-
Oui, il existe dans le `"prototype"` par défaut pour les fonctions, mais c'est tout. Ce qui se passe avec apres le fait - dépend totalement de nous.
114+
Oui, il existe dans le `"prototype"` par défaut des fonctions, mais c'est tout. Ce qu'il en adviendra par la suite dépend entièrement de nous.
115115

116116
En particulier, si nous remplaçons le prototype par défaut dans son ensemble, il ne contiendra pas de "constructor".
117117

118-
Par exemple:
118+
Par exemple :
119119

120120
```js run
121121
function Rabbit() {}
@@ -129,7 +129,7 @@ alert(rabbit.constructor === Rabbit); // false
129129
*/!*
130130
```
131131

132-
Donc, pour garder le bon `"constructor"`, nous pouvons choisir d'ajouter/supprimer des propriétés au `"prototype"` par défaut au lieu de l'écraser dans son ensemble:
132+
Donc, pour garder le bon `"constructor"`, nous pouvons choisir d'ajouter/supprimer des propriétés au `"prototype"` par défaut au lieu de l'écraser dans son ensemble :
133133

134134
```js
135135
function Rabbit() {}
@@ -140,7 +140,7 @@ Rabbit.prototype.jumps = true
140140
// le Rabbit.prototype.constructor par défaut est conservé
141141
```
142142

143-
Ou bien, recréez manuellement la propriété `constructor`:
143+
Ou bien, recréez manuellement la propriété `constructor` :
144144

145145
```js
146146
Rabbit.prototype = {
@@ -153,18 +153,18 @@ Rabbit.prototype = {
153153
// maintenant le constructeur est également correct, car nous l'avons ajouté
154154
```
155155

156-
157156
## Résumé
158157

159158
Dans ce chapitre, nous avons brièvement décrit la manière de définir un `[[Prototype]]` pour les objets créés via une fonction constructeur. Plus tard, nous verrons des modèles de programmation plus avancés qui en dépendent.
160159

161160
Tout est assez simple, juste quelques précisions pour clarifier les choses :
162161

163-
- La propriété `F.prototype` (ne pas confondre avec `[[Prototype]]`) définit `[[Prototype]]` de nouveaux objets lorsque `new F()` est appelée.
162+
- La propriété `F.prototype` (ne pas confondre avec `[[Prototype]]`) définit `[[Prototype]]` sur les nouveaux objets lorsque `new F()` est appelée.
164163
- La valeur de `F.prototype` devrait soit être un objet ou `null` : les autres valeurs ne fonctionneront pas.
165164
- La propriété `"prototype"` n'a cet effet spécial que lorsqu'elle est définie dans une fonction constructeur et invoquée avec `new`.
166165

167-
Sur les objets ordinaires, le `prototype` n'a rien de spécial:
166+
Sur les objets ordinaires, le `prototype` n'a rien de spécial :
167+
168168
```js
169169
let user = {
170170
name: "John",

0 commit comments

Comments
 (0)