JSFiddle - React, Tailwind, and code Playground
JavaScript
function isFunction(fctName) {
try {
return typeof(eval(fctName)) === "function";
} catch (err) {
return false;
}
}
function isFunction2(fctName) {
return typeof(window[fctName]) === "function";
}
var myFunc1 = function () {};
function myFunc2() {};
var aString = "hello world!";
console.log(myFunc1); // function () {}
console.log(myFunc2); // function myFunc2() {}
// Can't work : Exception throw
// console.log(myFunc3);
console.log(window['myFunc1']); // function () {}
console.log(window['myFunc2']); // function myFunc2() {}
console.log(window['myFunc3']); // undefined
console.log(isFunction("myFunc1")); // true
console.log(isFunction("myFunc2")); // true
console.log(isFunction("myFunc3")); // false
console.log(isFunction2("myFunc1")); // true
console.log(isFunction2("myFunc2")); // true
console.log(isFunction2("myFunc3")); // false
console.log(isFunction('aString.toLowerCase')); // true
console.log(isFunction('aString.toLower')); // false : toLower doesn't exist
console.log(isFunction2('aString.toLowerCase')); // false : aString.toLowerCase isn't defined ! (but aString was)
console.log(isFunction2('aString.toLower')); // false : same reason than above
// So Eval can be usefull