Javascript 当函数名作为字符串传递时调用嵌套函数
我试图通过将函数名作为字符串传入并调用来访问嵌套函数。例如,见邮报 但是它不起作用。错误:Javascript 当函数名作为字符串传递时调用嵌套函数,javascript,Javascript,我试图通过将函数名作为字符串传入并调用来访问嵌套函数。例如,见邮报 但是它不起作用。错误: window.outer[action] is not a function 如何使其工作,或调用嵌套函数的替代方法 原因是我试图在函数作用域内隐藏iframe调用的一组函数。这样,您就试图访问未定义的“外部”函数(outer.inner)的“内部”属性。唯一的方法是使用eval: function outer(action){ var inner = { func1: function
window.outer[action] is not a function
如何使其工作,或调用嵌套函数的替代方法
原因是我试图在函数作用域内隐藏iframe调用的一组函数。这样,您就试图访问未定义的“外部”函数(outer.inner)的“内部”属性。唯一的方法是使用eval:
function outer(action){
var inner = {
func1: function() {},
func2: function() {},
func3: function() {},
// ...
}
inner[action]();
}
outer("func1");
function outer(action){
eval(action+"()");
function inner(){
alert("hello");
}
}
outer("inner");
但请记住,在某些情况下,eval是邪恶的,所以要小心。eval。呃。galambalazs想出了一个解决办法。如果你使用eval,你不会死相信我:)是的,你不会死,Crockford不会杀你,他会折磨你直到时间结束:P
function outer(action){
eval(action+"()");
function inner(){
alert("hello");
}
}
outer("inner");