Javascript: 在调用 eval 之前检查字符串是否是有效的函数名
Javascript: Check if a string is a valid function name before calling eval
是否可以在调用 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()
的风险,这是一个私人项目,public 无法使用。
根据您的范围,您可以这样做:
var fnString = $('#fnInput').val();
if(typeof window[fnString] === "function") {
window[fnString]();
}
您可以使用 eval
获取类型。
if (eval(`typeof ${fnString}`) == "function") {
eval(`${fnString}()`);
}
是否可以在调用 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()
的风险,这是一个私人项目,public 无法使用。
根据您的范围,您可以这样做:
var fnString = $('#fnInput').val();
if(typeof window[fnString] === "function") {
window[fnString]();
}
您可以使用 eval
获取类型。
if (eval(`typeof ${fnString}`) == "function") {
eval(`${fnString}()`);
}