C'est un objet. Cette notation est utilisée pour simuler named arguments - quelque chose que JS ne peut pas faire nativement AFAIK.
Il permet l'extension infinie des arguments supplémentaires sans avoir à les déclarer dans la déclaration de fonction:
function myfunc(args) { }
vs.
function myfunc(duration, opacity, width, height, speed) { }
et - le plus important - il permet de commander arbitraire d'arguments:
{"duration": "0.5",
"width": 300,
"speed": 2 }
Voyant que de nombreux développeurs JS ne travaillent pas dans le contexte d'un IDE (qui afficherait les paramètres de fonction attendus en utilisant "look-ahead"), c'est une chose très pratique, car vous n'avez pas à mémoriser l'ordre de paramètre vient quand.
L'inconvénient est que s'il est un IDE, il est très difficile de fournir une fonctionnalité « look-ahead » pour ces faux arguments nommés, et l'ordre arbitraire d'arguments peut conduire à un certain degré de chaos à long terme.
Merci beaucoup mate :) – allaire