的動態調用(不能改變結構多),我試圖調用哪個嵌套在另一個函數中的函數:的javascript:在現有的實現嵌套函數
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/
我已經alreay想過使用eval()
,但我不知道如何傳遞一個對象 - 和他們說「的eval是邪惡的」;)
另一個解決方案,我想出了正在檢查innerFunction字符串,但這意味着的I必須知道哪些內部函數存在(另外,添加新的功能就意味着無須編寫額外的檢查,然後):
if(innerFunction == 'inner1') inner1(obj);
那麼有沒有不改變整體實現另一種方式?
這個問題很難回答。最初的實現是什麼,整個實現的哪些部分可以改變?從你的代碼片段看,它看起來不像'outer'已經存在。 – user123444555621
這個實現已經存在,'outer'函數也是如此(我剛剛改變了標識符以簡化事情) – schellmax