javascript - 使用字符串变量访问 JavaScript 模块方法

标签 javascript jquery

我有一个用 JavaScript 创建的模块。

var test = function () {
    var validate = function () {
        alert("fg");
    };
    return {
        validate: validate
    };
}();

现在,我可以使用字符串访问上述模块吗?例如:

$(function () {
    var s = "test"; 
    s.validate();   // error  
});

嗯,我尝试过,但到目前为止还没有运气,因为“s”是字符串。有什么方法可以将此字符串转换为上述模块对象并访问 validate 方法吗?

最佳答案

您可以使用eval()

var test = function () {
    var validate = function () {
        alert("fg");
    };
    return {
        validate: validate
    };
}();
$(function () {
    var s = eval("test"); //Here
    s.validate();  
});

旁注:

小心使用eval()。来自 docs :

eval() is a dangerous function, which executes the code it's passed with the privileges of the caller. If you run eval() with a string that could be affected by a malicious party, you may end up running malicious code on the user's machine with the permissions of your webpage / extension.

关于javascript - 使用字符串变量访问 JavaScript 模块方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30662927/

相关文章:

javascript - RSA私钥无法解密数据

jquery - 将鼠标悬停在单独的类上时向元素添加类

javascript - 无法使用数据实时搜索 + jquery 多个填充 Bootstrap 选择

javascript - 如何在刷新页面后保留最后一个JQuery DIV位置?

javascript - 修复脚本仅更新一条记录

javascript - Angular4 社交媒体 Facebook 分享页面,包含详细信息

javascript - 如何使用 moment.js 只获取日期 (DD-MM-YYYY) 格式而不是时间和日期?

javascript - 如何为我的页面创建永久链接?

javascript - jQuery 更改滚动顶部值

javascript - 将里程表绑定(bind)到 Datalist 和 gridview