在javascript中调用字符串作为函数调用

时间:2014-02-19 14:40:41

标签: javascript

这有什么问题?我想将字符串称为函数。有人可以帮我这个

var wnameSpace = (function(){  
    var privateVar = '';
    privateVar = "dummyFunction";  
    dummyFunction = function(){
        console.log("hurray dummyFunction called here");
    };  
    return {
        publicFunction:function() {
            console.log(window[wnameSpace])
        }  
    } 
})();

wnameSpace.publicFunction();

2 个答案:

答案 0 :(得分:2)

嗯,您正在访问window[wnameSpace],但我认为您打算使用window[privateVar]。此外,您可能打算调用该函数而不是仅记录它。试试这个:

var wnameSpace = (function(){  
    var privateVar = "dummyFunction";  
    dummyFunction = function(){
        console.log("hurray dummyFunction called here");
    };  
    return {
        publicFunction:function() {
            window[privateVar](); // "hurray dummyFunction called here"
        }  
    } 
})();

wnameSpace.publicFunction();

但是,我不建议在生产中使用这种代码。很难说出你想要的是什么,但我确信有更好的方法可以实现它。

答案 1 :(得分:0)

var wnameSpace = (function(){ 
var privateVar = ''; 
privateVar = "dummyFunction"; 
dummyFunction = function(){ 
console.log("hurray dummyFunction called here"); 
}; 
return { 
publicFunction:function(){ 
var fn = window[privateVar]; if (typeof fn === "function") fn(); 
} 
} 
})(); 

wnameSpace.publicFunction();

也会有效..谢谢你的所有答案