【发布时间】:2025-12-19 00:50:01
【问题描述】:
我已经构建了一个将使用模块的插件。基本上可以添加到代码中以提供附加功能的功能。
插件中有一个函数可以调用这些模块。以前,我是这样称呼他们的:
processInstance($(doc).find('[data-bcp-crumbs]'), crumbs);
processInstance($(doc).find('[data-bcp-copyright]'), copyright);
processInstance($(doc).find('[data-bcp-activenav]'), activeNav);
每行的最后一部分是将在 processInstance 脚本中调用的函数的名称。因此,我将函数的名称作为字符串和每一行的第一类对象。我想把它简化成这样:
for (var i=0; i>module.length;i++) {
processInstance($(doc).find('[data-bcp-'+module[i].toLowerCase()+']'), window[module[i]]);
}
模块数组被添加到实际模块代码的每个实例之后。我这样做是这样的:
module.push('crumbs');
这不起作用,因为 window[module[i]] 返回未定义。
需要如何修改我的代码才能使其正常工作?
这是一个插入了一个简单模块的整个插件的 jsfiddle 示例:http://jsfiddle.net/michaeljimmy/U8anp/1/
【问题讨论】:
-
问题是什么?
-
我在我的问题中添加了实际问题? :)
-
请贴出所有相关代码!
-
你能在 JS fiddle 中设置一个例子吗?我会看看它。只是猜测,虽然窗口对象在执行时没有你的 module[i] 属性。
-
为什么这被否决了?
标签: javascript function simplify first-class