在调用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()
的风险,这是一个公众无法使用的私人项目。
答案 0 :(得分:1)
根据您的范围,您可以执行以下操作:
var fnString = $('#fnInput').val();
if(typeof window[fnString] === "function") {
window[fnString]();
}
答案 1 :(得分:0)
您可以使用eval
来获取类型。
if (eval(`typeof ${fnString}`) == "function") {
eval(`${fnString}()`);
}