Categories
Code

Call JavaScript Function by String Name

You can use eval() method to invoke a JavaScript function whose name is stored in a string variable but there’s a better method that doesn’t require eval.

Let’s say we have a function helloWorld(e) that takes variable and prints it.

function helloWorld(e) {
  e = e || "Anonymous";
  console.log("Hello " + e);
  return;
}

We declare a variable that has the function name and another variable that stores the arguments.

// Function name to invoke
var fnName = "helloWorld";

// Params to pass to the function
var params = "ctrlq.org"

// Call function using Window object
window[fnName](params);

This can be useful for invoking Google Apps Script functions as well. However, since it is server-side code and not a web browser environment, we use this to refer to the object that contains it.

this[fnName](params);