vous connaissez tous la requête Ajax avec JQuery
$.ajax({ url:url, method:'GET', success:function(data){ console.log(data) } })
En passant en callback une fonction anonyme, on définit la fonction à la volée, donc pas de problème pour passer des paramètres.
Mais qu’en est-il si on utilise une fonction nommée à la place?
function callback(data) { console.log(data) }
On serait tenté d’écrire :
$.ajax({ url:url, method:'GET', success:callback(data) })
ça ne marche pas en effet, vous devez passer la fonction par référence, autrement dit vous devez passer le handler, en ajoutant des parenthèses vous exécutez la fonction. Donc on doit avoir la syntaxe suivante, mais qui amène à poser la question : mais comment on passe le paramètre data?
$.ajax({ url:url, method:'GET', success:callback })
Il existe en Javascript la variable argument
, qui fait référence aux paramètres qui sont passés, c’est un tableau commençant à l’index 0 pour le premier paramètre (donc data dans notre cas)
function callback() { console.log(argument[0]) } #marche quelquesoit le nombre de paramètres