【发布时间】:2011-11-24 22:18:26
【问题描述】:
我已经进行了一些谷歌搜索,但这个特殊问题有点类似于“我如何从字符串中评估函数名”,所以我找不到解决方案,我想将字符串转换为一个函数,所以说我有类似的东西:
for (var i = 0; i < someNumber ; i++) {
var foo = "function() { someObject.someOtherFunctionCall(" + i + ") }";
someArray[i] = foo;
}
我将如何对 foo 进行类型转换以便调用
someArray[0]();
我需要将值添加到函数中,有什么想法吗?
编辑:我只是用“价值”代替了“我”为混乱道歉
更新:
好的,我接受了 icktoofay 的回答,因为它可以回答您的大部分问题和疑虑;我已经尝试了大多数建议的方法,所有这些方法要么没有将变量传递给调用位置范围,要么需要与最后一个函数变量值保持一致的闭包,不幸的是我无法控制其余的代码,所以我无法修改函数最终被调用的位置。
这可能是一个临时解决方案;我知道函数的解析字符串有多难看。就浏览器兼容性而言,它只能在一个环境中运行,所以我认为我们在那里非常安全。
无论如何,再次感谢您的及时回答和讨论。
【问题讨论】:
-
我真的很想知道您为什么要这样做,因为这似乎是个坏主意(tm)。
-
我真的很好奇你为什么将函数定义为字符串?
标签: javascript string function casting