在调用eval之前是否可以检查字符串是否是有效的函数名?

var fnString = $('#fnInput').val()

// is there any way I can check if fnString is a valid function name
// before calling the following line:

eval(fnString + '()');


我了解使用eval()的风险,这是一个私人项目,不会向公众公开。

最佳答案

根据您的范围,您可以执行以下操作:

var fnString = $('#fnInput').val();
if(typeof window[fnString] === "function") {
    window[fnString]();
}

09-25 19:10