在现有的实现中(不能改变太多的结构),我试图调用一个嵌套在另一个函数中的函数:
function outer(innerFunction, obj) {
//TODO: call innerFunction here, passing obj as first parameter
function inner1(obj) {
alert(obj.key);
}
}
outer('inner1', {key:'value'});
jsfiddle 在这里:http: //jsfiddle.net/tbyyw/
我已经考虑过使用eval()
,但我不知道如何传递一个对象——他们说'eval is evil';)
我想出的另一个解决方案是检查 innerFunction 字符串,但这意味着我必须知道存在哪些内部函数(此外,添加新函数意味着必须编写额外的检查):
if(innerFunction == 'inner1') inner1(obj);
那么在不改变整体实现的情况下还有另一种方法吗?