Skip to content

Commit baebb79

Browse files
authored
Merge pull request #36 from TevaHenry/master
Function object, NFE (Tasks)
2 parents a5003e7 + cd09263 commit baebb79

File tree

5 files changed

+27
-27
lines changed

5 files changed

+27
-27
lines changed
Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,18 +1,18 @@
11
function makeCounter() {
22
let count = 0;
33

4-
// ... your code ...
4+
// ... votre code ...
55
}
66

77
let counter = makeCounter();
88

99
alert( counter() ); // 0
1010
alert( counter() ); // 1
1111

12-
counter.set(10); // set the new count
12+
counter.set(10); // définir le nouveau "count"
1313

1414
alert( counter() ); // 10
1515

16-
counter.decrease(); // decrease the count by 1
16+
counter.decrease(); // diminuer de 1 le "count"
1717

18-
alert( counter() ); // 10 (instead of 11)
18+
alert( counter() ); // 10 (au lieu de 11)
Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,2 +1,2 @@
11

2-
The solution uses `count` in the local variable, but addition methods are written right into the `counter`. They share the same outer lexical environment and also can access the current `count`.
2+
La solution utilise `count` dans la variable locale, mais les méthodes d'addition sont écrites directement dans le `compteur`. Ils partagent le même environnement lexical extérieur et peuvent également accéder au `count` actuel.

1-js/06-advanced-functions/06-function-object/2-counter-inc-dec/task.md

Lines changed: 7 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -2,14 +2,14 @@ importance: 5
22

33
---
44

5-
# Set and decrease for counter
5+
# Un mutateur et diminution pour counter
66

7-
Modify the code of `makeCounter()` so that the counter can also decrease and set the number:
7+
Modifiez le code de `makeCounter()` afin que le compteur puisse également diminuer et définir le nombre:
88

9-
- `counter()` should return the next number (as before).
10-
- `counter.set(value)` should set the `count` to `value`.
11-
- `counter.decrease()` should decrease the `count` by 1.
9+
- `counter()` devrait retourner le nombre suivant (comme avant).
10+
- `counter.set(value)` devrait définir le `count` à être `value`.
11+
- `counter.decrease()` devrait diminuer le `compte` de 1.
1212

13-
See the sandbox code for the complete usage example.
13+
Voir le code sandbox pour un exemple d'utilisation complet.
1414

15-
P.S. You can use either a closure or the function property to keep the current count. Or write both variants.
15+
P.S. Vous pouvez utiliser une fermeture ou la propriété de fonction pour maintenir le nombre actuel. Ou écrivez les deux variantes.

1-js/06-advanced-functions/06-function-object/5-sum-many-brackets/solution.md

Lines changed: 12 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -1,9 +1,9 @@
11

2-
1. For the whole thing to work *anyhow*, the result of `sum` must be function.
3-
2. That function must keep in memory the current value between calls.
4-
3. According to the task, the function must become the number when used in `==`. Functions are objects, so the conversion happens as described in the chapter <info:object-toprimitive>, and we can provide our own method that returns the number.
2+
1. Pour que tout fonctionne * de toute façon *, le résultat de `sum` doit être fonction.
3+
2. Cette fonction doit garder en mémoire la valeur actuelle entre les appels.
4+
3. Selon la tâche, la fonction doit devenir le numéro lorsqu'elle est utilisée dans `==`. Les fonctions étant des objets, la conversion s'effectue comme décrit dans le chapitre <info:object-toprimitive>, et nous pouvons fournir notre propre méthode qui renvoie le nombre.
55

6-
Now the code:
6+
Maintenant le code:
77

88
```js run
99
function sum(a) {
@@ -28,28 +28,28 @@ alert( sum(6)(-1)(-2)(-3) ); // 0
2828
alert( sum(0)(1)(2)(3)(4)(5) ); // 15
2929
```
3030

31-
Please note that the `sum` function actually works only once. It returns function `f`.
31+
Veuillez noter que la fonction `sum` ne fonctionne réellement qu'une fois. Il renvoie la fonction `f`.
3232

33-
Then, on each subsequent call, `f` adds its parameter to the sum `currentSum`, and returns itself.
33+
Ensuite, à chaque appel suivant, `f` ajoute son paramètre à la somme `currentSum`, et se renvoie lui-même.
3434

35-
**There is no recursion in the last line of `f`.**
35+
**Il n'y a pas de récursion dans la dernière ligne de `f`.**
3636

37-
Here is what recursion looks like:
37+
Voici à quoi ressemble la récursion:
3838

3939
```js
4040
function f(b) {
4141
currentSum += b;
42-
return f(); // <-- recursive call
42+
return f(); // <-- appel récursif
4343
}
4444
```
4545

46-
And in our case, we just return the function, without calling it:
46+
Et dans notre cas, nous renvoyons simplement la fonction, sans l'appeler:
4747

4848
```js
4949
function f(b) {
5050
currentSum += b;
51-
return f; // <-- does not call itself, returns itself
51+
return f; // <-- ne s'appelle pas, se renvoie
5252
}
5353
```
5454

55-
This `f` will be used in the next call, again return itself, so many times as needed. Then, when used as a number or a string -- the `toString` returns the `currentSum`. We could also use `Symbol.toPrimitive` or `valueOf` here for the conversion.
55+
Ce `f` sera utilisé lors du prochain appel et se renvera lui-même autant de fois que nécessaire. Ensuite, lorsqu'il est utilisé sous forme de nombre ou de chaîne, le `toString` renvoie le `currentSum`. Nous pourrions aussi utiliser `Symbol.toPrimitive` ou` valueOf` ici pour la conversion.

1-js/06-advanced-functions/06-function-object/5-sum-many-brackets/task.md

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -2,9 +2,9 @@ importance: 2
22

33
---
44

5-
# Sum with an arbitrary amount of brackets
5+
# La somme avec une quantité arbitraire de parenthèses
66

7-
Write function `sum` that would work like this:
7+
Écrivez la fonction `sum` qui fonctionnerait comme ceci:
88

99
```js
1010
sum(1)(2) == 3; // 1 + 2
@@ -14,4 +14,4 @@ sum(6)(-1)(-2)(-3) == 0
1414
sum(0)(1)(2)(3)(4)(5) == 15
1515
```
1616

17-
P.S. Hint: you may need to setup custom object to primitive conversion for your function.
17+
P.S. Indice: vous devrez peut-être configurer une conversion d'objet à primitive personnalisé pour votre fonction.

0 commit comments

Comments
 (0)