57 votes

Équivalent de "window["functionName"](arguments)" côté serveur

Quel est le code équivalent de window["functionName"](arguments) dans NodeJS côté serveur ?

14voto

zyklus Points 31683

vous recherchez global

Notez cependant que dans les modules rien n'est jamais exposé à ce niveau

13voto

JerryGoyal Points 9110

1) Si les méthodes sont dans le même fichier js

définir toutes les méthodes en tant que propriétés de Handler :

 var Handler={};

Handler.application_run = function (name) {
console.log(name)
}

Maintenant appelle ça comme ça

 var somefunc = "application_run";
Handler[somefunc]('jerry codes');

Sortie : jerry codes


2) Si vous souhaitez conserver les méthodes dans un autre fichier js

 //    Handler.js
module.exports={
    application_run: function (name) {
        console.log(name)
    }
}

Utiliser la méthode définie en Handler.js en different.js :

 //    different.js
var methods = require('./Handler.js')   // path to Handler.js
methods['application_run']('jerry codes')

Sortie : jerry codes

5voto

Zeal Nagar Points 48

Si vous souhaitez appeler une fonction au niveau de la classe en utilisant this voici la solution et cela a fonctionné pour moi

 class Hello {
  sayHello(name) {
    console.log("Hello " + name)
  }
  callVariableMethod() {
    let method_name = 'sayHello'
    this[`${method_name}`]("Zeal Nagar!")
  }
}

4voto

Si vous en avez besoin dans la portée du module, vous pouvez utiliser quelque chose comme ceci

 var module = require('moduleName');

module['functionName'](arguments);

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X