⊗jsPmCxCM 440 of 505 menu

Liaison de contexte via la méthode call en JavaScript

Ainsi, nous avons vu comment fonctionne réellement this. Examinons maintenant les méthodes qui permettent d'indiquer de manière forcée dans quel contexte une fonction est appelée (c'est-à-dire de dire forcément à quoi est égal this).

La première méthode que nous allons voir s'appelle call. Regardons son fonctionnement sur un exemple. Supposons que nous ayons un input :

<input id="elem" value="text">

Récupérons la référence à cet input et enregistrons-la dans une variable elem :

let elem = document.querySelector('#elem');

Créons maintenant une fonction func, à l'intérieur de laquelle nous afficherons this.value :

function func() { console.log(this.value); }

Pour l'instant, notre fonction ne sait pas à quoi se réfère this. Si nous l'avions liée via addEventListener, alors oui. Mais nous ne ferons pas cela. À la place, nous allons simplement appeler notre fonction, en lui disant que this doit être égal à elem.

Cela se fait comme ceci : func.call(elem). Ce code est équivalent à un simple appel de fonction func comme ceci : func(), seulement avec la condition que this est égal à elem.

Ainsi, la syntaxe de la méthode call est la suivante : fonction.call(objet). Rassemblons tout ensemble :

let elem = document.querySelector('#elem'); function func() { console.log(this.value); // affichera la value de l'input } func.call(elem);

Une fonction est donnée :

function func() { console.log(this.value); }

Trois inputs sont donnés :

<input id="elem1" value="text1"> <input id="elem2" value="text2"> <input id="elem3" value="text3">

À l'aide de la méthode call et de la fonction func affichez à l'écran la value de chacun des inputs.

Français
AfrikaansAzərbaycanБългарскиবাংলাБеларускаяČeštinaDanskDeutschΕλληνικάEnglishEspañolEestiSuomiहिन्दीMagyarՀայերենIndonesiaItaliano日本語ქართულიҚазақ한국어КыргызчаLietuviųLatviešuМакедонскиMelayuမြန်မာNederlandsNorskPolskiPortuguêsRomânăРусскийසිංහලSlovenčinaSlovenščinaShqipСрпскиSrpskiSvenskaKiswahiliТоҷикӣไทยTürkmenTürkçeЎзбекOʻzbekTiếng Việt
Nous utilisons des cookies pour le fonctionnement du site, l'analyse et la personnalisation. Le traitement des données est effectué conformément à la Politique de confidentialité.
accepter tout personnaliser refuser