2014-02-19 47 views
0

這是什麼問題?我想調用一個字符串作爲函數。可能有人請幫助我在此在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

那麼,你所訪問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(); 

但是,我不會推薦在生產中使用這種代碼。確切地說,很難說出你想要的,但我確信有更好的方法來實現它。

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(); 

還將努力。謝謝所有anwsers