7
votes

Ajouter des fonctions avec des params au tableau JavaScript (nœud.js)

Je veux appuyer sur des fonctions avec des paramètres sur un tableau sans les avoir exécutés. Voici ce que j'ai essayé jusqu'à présent: xxx

mais de cette manière, les fonctions sont exécutées lors de la poussée. Cette question fournit un exemple similaire mais sans paramètres. Comment puis-je inclure des paramètres dans cet exemple?


2 commentaires

Êtes-vous lié à la structure de la matrice? Sinon, je suggère une solution avec un objet contenant des références à la fonction et aux arguments.


Oui, j'ai besoin de transmettre ce tableau vers async.parallel ([], rappel ()); Il pourrait y avoir une solution de contournement avec objet.


3 Réponses :


3
votes

Vous devez BIND STROND> les paramètres à la fonction. Le premier paramètre est le "THISARG".

function MyFunction(param1, param2){
   console.log('Param1:', param1, 'Param2:', param2)
}

var load_functions = [];
load_functions.push(MyFunction.bind(undefined, 1, 2));
load_functions[0](); // Param1: 1 Param2: 2


2 commentaires

Simple et précis.! Merci. :)


Non, vous n'avez pas avoir à Lier les paramètres, bien que c'est une approche. Il est plus lisible et idiomatique avec des fonctions fléchées pour écrire () => myfunction (1, 2) .



1
votes

Fonctions push qui font ce que vous voulez:

load_functions.push(
  () => load_helpers.loadAgentListings(callback, agent_ids),      
  () => load_helpers.loadAgentCount   (callback, agent_data)
);


0 commentaires

1
votes

Vous pouvez envelopper des éléments ajoutés avec une fonction comme celle-là, simulacons load_helpers code> xxx pré>

et essayez de l'utiliser de la sorte: P>

var a = []

a.push(load_helpers.loadAgentListings.bind(null, (function(r) {return r * 2})))

console.log(a[0]([1, 2, 3])) // execution with additional parameters


0 commentaires