这有什么问题?我想将字符串称为函数。有人可以帮我这个
var wnameSpace = (function(){
var privateVar = '';
privateVar = "dummyFunction";
dummyFunction = function(){
console.log("hurray dummyFunction called here");
};
return {
publicFunction:function() {
console.log(window[wnameSpace])
}
}
})();
wnameSpace.publicFunction();
答案 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();
也会有效..谢谢你的所有答案