Home > Mobile >  How can I access a function by its name present in form of string in JavaScript
How can I access a function by its name present in form of string in JavaScript

Time:05-19

Suppose I am inside a function and I have created many functions inside it. From them I want to access a function by its name present in form of a string. How can I do that?

function main(){
  function a(){return "a function called"}
  function b(){return "b function called"}
  function c(){return "c function called"}
  function d(){return "d function called"} // Please assume that these functions do very different stuffs, so that we cannot use ternary ifs (It is just a rough example)
  const randomFunction = prompt("Which function do you want to call?") // Please consider that we use this user input to ask user type something from a, b, c or d. Obviously return value of prompt function would be a string
  // Now I want to access the function by the same name, user entered and I also want to call it.
  // So what can be the best approach to solve this problem, except from using "eval" or "Function"
}
main()

CodePudding user response:

Turn it into an object and access by key. i.e.

Suppose I am inside a function and I have created many functions inside it. From them I want to access a function by its name present in form of a string. How can I do that?

const randomFunc =  {
  a: function a(){return "a function called"},
  b: function b(){return "b function called"},
  c: function c(){return "c function called"},
  d: function d(){return "d function called"},
}

console.log(randomFunc.a)

you can then access the functions by the user input.

CodePudding user response:

function main(){ function a(){return "a function called"} function b(){return "b function called"} function c(){return "c function called"} function d(){return "d function called"} // Please assume that these functions do very different stuffs, so that we cannot use ternary ifs (It is just a rough example) const randomFunction = prompt("Which function do you want to call?") // Please consider that we use this user input to ask user type something from a, b, c or d. Obviously return value of prompt function would be a string // Now I want to access the function by the same name, user entered and I also want to call it. // So what can be the best approach to solve this problem, except from using "eval" or "Function" return d; } main()
  • Related