Skip to content

Commit fd3547f

Browse files
Apply minor fixes in '1-js/06-advanced-functions/07-new-function/article.md'
1 parent ab831aa commit fd3547f

File tree

1 file changed

+11
-11
lines changed
  • 1-js/06-advanced-functions/07-new-function

1 file changed

+11
-11
lines changed

1-js/06-advanced-functions/07-new-function/article.md

Lines changed: 11 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -5,35 +5,35 @@ Il existe encore un autre moyen de créer une fonction. C'est rarement utilisé,
55

66
## Syntaxe
77

8-
La syntaxe pour créer une fonction:
8+
La syntaxe pour créer une fonction :
99

1010
```js
1111
let func = new Function ([arg1, arg2, ...argN], functionBody);
1212
```
1313

1414
La fonction est créée avec les arguments `arg1...argN` et le `functionBody` donné.
1515

16-
C'est plus facile à comprendre en regardant un exemple. Voici une fonction avec deux arguments:
16+
C'est plus facile à comprendre en regardant un exemple. Voici une fonction avec deux arguments :
1717

1818
```js run
1919
let sum = new Function('a', 'b', 'return a + b');
2020

2121
alert( sum(1, 2) ); // 3
2222
```
2323

24-
Et voici une fonction sans arguments, seulement le corps de la fonction:
24+
Et voici une fonction sans arguments, seulement le corps de la fonction :
2525

2626
```js run
2727
let sayHi = new Function('alert("Hello")');
2828

2929
sayHi(); // Hello
3030
```
3131

32-
La différence majeure par rapport aux autres méthodes que nous avons deja vu est que la fonction est créée littéralement à partir d'une chaîne de caractères passée au moment de l'exécution.
32+
La différence majeure par rapport aux autres méthodes que nous avons déjà vu est que la fonction est créée littéralement à partir d'une chaîne de caractères passée au moment de l'exécution.
3333

3434
Toutes les déclarations précédentes nous demandait, nous les programmeurs, d'écrire le code de la fonction dans le script.
3535

36-
Mais `new Function` nous permet de convertir n'importe qu'elle chaine de caractères en fonction. Par exemple, nous pouvons recevoir une nouvelle fonction d’un serveur puis l’exécuter:
36+
Mais `new Function` nous permet de convertir n'importe qu'elle chaine de caractères en fonction. Par exemple, nous pouvons recevoir une nouvelle fonction d’un serveur puis l’exécuter :
3737

3838
```js
3939
let str = ... receive the code from a server dynamically ...
@@ -66,7 +66,7 @@ function getFunc() {
6666
getFunc()(); // error: value is not defined
6767
```
6868

69-
Comparez-le avec le comportement habituel:
69+
Comparez-le avec le comportement habituel :
7070

7171
```js run
7272
function getFunc() {
@@ -88,11 +88,11 @@ Imaginons que nous devions créer une fonction à partir d'une chaîne de caract
8888

8989
Notre nouvelle fonction doit interagir avec le script principal.
9090

91-
Et si il pouvait accéder aux variables externes?
91+
Et si il pouvait accéder aux variables externes ?
9292

93-
Le problème est qu'avant la publication de JavaScript en production, JavaScript est compressé à l'aide d'un *minifier*, un programme spécial qui rétrécit le code en supprimant les commentaires, espaces supplémentaires et, plus particuliarement, renomme les variables locales pour quelles soient plus courtes.
93+
Le problème est qu'avant la publication de JavaScript en production, JavaScript est compressé à l'aide d'un *minifier*, un programme spécial qui rétrécit le code en supprimant les commentaires, espaces supplémentaires et, plus particulièrement, renomme les variables locales pour quelles soient plus courtes.
9494

95-
Par exemple, si une fonction a `let userName`, le minifier la remplace par `let a` (ou une autre lettre si celle-ci est deja prise), et le fait partout. C’est généralement une chose sûre à faire, car la variable est locale, rien en dehors de la fonction ne peut y accéder. Et à l'intérieur de la fonction, le minifier remplace chaque mention. Les minifiers sont intelligents, ils analysent la structure du code pour ne rien casser. Ils ne sont pas juste une simple fonction de trouvaille et remplacement.
95+
Par exemple, si une fonction a `let userName`, le minifier la remplace par `let a` (ou une autre lettre si celle-ci est déjà prise), et le fait partout. C’est généralement une chose sûre à faire, car la variable est locale, rien en dehors de la fonction ne peut y accéder. Et à l'intérieur de la fonction, le minifier remplace chaque mention. Les minifiers sont intelligents, ils analysent la structure du code pour ne rien casser. Ils ne sont pas juste une simple fonction de recherche et remplacement.
9696

9797
Donc, si `new Function` avait accès aux variables externes, il serait impossible de trouver le nom d'utilisateur `userName` renommé.
9898

@@ -104,7 +104,7 @@ Pour passer quelque chose à une fonction créée par `new Function`, nous devon
104104

105105
## Résumé
106106

107-
La syntaxe:
107+
La syntaxe :
108108

109109
```js
110110
let func = new Function ([arg1, arg2, ...argN], functionBody);
@@ -120,4 +120,4 @@ new Function('a,b', 'return a + b'); // séparés par des virgules
120120
new Function('a , b', 'return a + b'); // séparés par des virgules et espacés
121121
```
122122

123-
fonctions créées avec `new Function` ont leur `[[Environment]]` qui fait référence à l’environnement lexical global, et non l’environnement externe. Par conséquent, elles ne peuvent pas utiliser de variables externes. Mais c’est bien, parce que cela nous protège des erreurs. Passer explicitement des paramètres est une méthode bien meilleure sur le plan architectural et ne pose aucun problème avec les minifiers.
123+
Les fonctions créées avec `new Function` ont leur `[[Environment]]` qui fait référence à l’environnement lexical global, et non à l’environnement externe. Par conséquent, elles ne peuvent pas utiliser de variables externes. Mais c’est bien, parce que cela nous protège des erreurs. Passer explicitement des paramètres est une méthode bien meilleure sur le plan architectural et ne pose aucun problème avec les minifiers.

0 commit comments

Comments
 (0)