我知道这个问题在SO上已被问过几次,但我梳理了大约12个问题,但没有一个能够帮助我。
$(document).ready(function () {
var Joe = function(){
function introduce(petname){
alert(petname)
}
return {
introduce:introduce
}
}();
var Jane = function(){
function introduce(petname){
console.log(petname)
}
return {
introduce:introduce
}
}()
}
如果我在变量中存储了joe这个词怎么能调用函数
Joe.introduce('pluto')
假设我将单词Joe存储在变量fnc
中 fnc = "Joe";
我不想使用eval。我试过window[fnc.introduce('pluto')]()
正如其他人所建议但它不起作用。
答案 0 :(得分:0)
我能想到的唯一方法就是这样......
将您的函数存储在对象中,然后使用object[fnc]
引用该函数。
编辑: 更新原始代码以反映OP的编辑
fnc = 'Joe';
$(document).ready(function () {
var object = {
Joe: function () {
function introduce(petname) {
alert(petname)
}
return {
introduce: introduce
};
},
Jane: function () {
function introduce(petname) {
console.log(petname)
}
return {
introduce: introduce
};
},
};
object[fnc]().introduce('pluto');
object['Jane']().introduce('goofy');
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
答案 1 :(得分:0)
试试这个! =)
var Joe = function(){
this.introduce = function(pet){
alert(pet);
}
}
var Jane = {
introduce : function(pet){
alert(pet);
}
}
$(function(){
new Joe().introduce('pluto');
Jane.introduce('food');
});
&#13;
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.9.1/jquery.min.js"></script>
&#13;