J'ai appris un truc

En cherchant à supprimer une dépendance à un objet global (attaché au document javascript) j’ai découvert qu’on pouvait modifier le this fourni à une fonction attachée à un événement.

Exemple :

document.body.addEventListener('keydown', this.keyDown);

Dans ce cas, le this qui sera fourni à la fonction keyDown() sera l’élément document.body vu que c’est lui auquel est rattaché le gestionnaire d’événement.

En utilisant la fonction bind() on peut modifier ce comportement :

document.body.addEventListener('keydown', this.keyDown.bind(this));

Maintenant le this qui sera fourni sera l’object contenant cet appel.

Le seul bémol c’est que du coup, dans la fonction appelée sur le déclenchement de l’événement, on a plus l’info sur l’object auquel est attaché l’événement. Dans ce cas là, il faut peut-être prévoir un argument supplémentaire à la fonction appelée pour fournir aussi le scope ; mais là on dépasse le cadre de ma petite note…

Ajouter un commentaire

Les commentaires peuvent être formatés en utilisant la syntaxe Markdown Extra.

Ajouter un rétrolien

URL de rétrolien : https://open-time.net/trackback/14573

Haut de page