Javascript:在调用 eval 之前检查字符串是否是有效的函数名称

标签 javascript jquery 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() 的风险,这是一个私有(private)项目,不会向公众开放。

最佳答案

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

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

关于Javascript:在调用 eval 之前检查字符串是否是有效的函数名称,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48401155/

相关文章:

jquery 在 .html() 中传递文本和变量

javascript - 如何使用 jQuery 获取元素的宽度属性?

jquery - 如何通过 AJAX 发送 Ruby on Rails 的 put 请求

java - 在 groovy 中使用 eval

javascript - chrome 打包的应用程序不允许在 knockout.js 中进行不安全评估

javascript - Jquery多维数组匹配并返回父数组值

javascript - 未捕获的类型错误 : Cannot read property 'length' of undefined on json_encode()

javascript - AngularJS Controller 在后端数据更改时自动更新 $scope

javascript - 如何在 HTML5 中的一个元素中使用多个链接

javascript - 如何限制javascript中函数的执行时间?