Javascript ajouter un argument supplémentaire

Permet de jeter un oeil à ce code:

var mainFunction = function() {
  altFunction.apply(null, arguments);
}

Les arguments qui sont passés à "mainFunction" sont dynamiques, ils peuvent être de 4 ou 10 ne marche pas question. Cependant, je dois passer à altFunction ET je dois ajouter un argument SUPPLÉMENTAIRE à la liste d'arguments.

J'ai essayé ceci:

var mainFunction = function() {
  var mainArguments = arguments;
  mainArguments[mainArguments.length] = 'extra data'; //not +1 since length returns "human" count.

  altFunction.apply(null, mainArguments);
}

Mais cela ne semble pas fonctionner, comment puis-je faire cela?

  • Qu'entendez-vous par not +1 since length returns "human" count?
  • .longueur renvoie 4 si le tableau est 0, 1, 2, 3, il ne retourne pas les 3, j'espère que vous comprenez maintenant. C'est ce que je voulais dire 😛
  • Et bien oui, mais c'est le comportement attendu de .length. Lorsque vous utilisez arr[arr.length] = "whatever", c'est le même comportement que l'utilisation de .push(), et ajoute l'élément à la fin du tableau. Votre problème, c'est que arguments n'est pas un tableau, c'est pourquoi vous devez utiliser l'une des nombreuses solutions similaires qui ont été fournies.
  • En fait, vous avez presque lui. Votre code ne fonctionne que si vous aussi vous faire arguments.length++ avant l'appel à s'appliquer.
InformationsquelleAutor onlineracoon | 2012-11-28