Skip to content

Commit fd0169f

Browse files
committed
docs: finish translation of section
1 parent 5a83c2a commit fd0169f

File tree

1 file changed

+32
-0
lines changed

1 file changed

+32
-0
lines changed

1-js/06-advanced-functions/10-bind/article-fr.md

Lines changed: 32 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -173,3 +173,35 @@ user = {
173173
sayHi() { alert("Another user in setTimeout!"); }
174174
};
175175
```
176+
177+
Sur la ligne `(*)` nous prenons la méthode `user.sayHi` en nous la lions à `user`. La méthode `sayHi` est une fonction "liée", qui peut être appelée seule ou être passer à `setTimeout` -- ça n'a pas d'importance, le contexte sera le bon.
178+
179+
Ici, nous pouvons voir que les arguments passés "tel quel", seulement `this` est corrigé par `bind` :
180+
181+
```js run
182+
let user = {
183+
firstName: "John",
184+
say(phrase) {
185+
alert(`${phrase}, ${this.firstName}!`);
186+
}
187+
};
188+
189+
let say = user.say.bind(user);
190+
191+
say("Hello"); // Hello, John! (l'argument "Hello" est passé à say)
192+
say("Bye"); // Bye, John! (l'argument "Bye" est passé à say)
193+
```
194+
195+
````smart header="La méthode pratique : `bindAll`"
196+
Si un objet a plusieurs méthodes et que nous prévoyons de le transmettre plusieurs fois, alors on pourrait toutes les lier dans une boucle :
197+
198+
```js
199+
for (let key in user) {
200+
if (typeof user[key] == 'function') {
201+
user[key] = user[key].bind(user);
202+
}
203+
}
204+
```
205+
206+
Les librairies JavaScript fournissent aussi des fonctions partiques pour les liaisons de masse, e.g. [_.bindAll(object, methodNames)](https://lodash.com/docs#bindAll) avec lodash.
207+
````

0 commit comments

Comments
 (0)