Javascript 执行名称在数组中的函数

Javascript 执行名称在数组中的函数,javascript,jquery,arrays,Javascript,Jquery,Arrays,我看到了,,但我不知道如何使用数组和for循环来实现这一点 我所尝试的: 我有几个函数,比如: function one() { alert('one'); } function two() { alert('two'); } function three() { alert('three'); } 和一个数组: callThese = ['one', 'two'] 我想打电话给one和two 这不起作用: for (i = 0; i < callThes

我看到了,,但我不知道如何使用数组和for循环来实现这一点

我所尝试的:

我有几个函数,比如:

function one() { 
    alert('one');
}

function two() {
    alert('two');
}

function three() {
    alert('three');
}
和一个数组:

callThese = ['one', 'two']
我想打电话给
one
two

这不起作用:

for (i = 0; i < callThese.length; ++i) {
    //console.log(callThese[i]); <--- (outputs one and two)
    window[callThese[i]]();
}
for(i=0;i//console.log(callthis[i]);您需要为对象分配函数。不建议创建全局函数(其他脚本/框架可以覆盖它们)

var obj={
一是功能(){
警报(“一”);
},
二是功能(){
警报(“两个”);
},
三:功能(){
警报(“三”);
}
},
调用这些=['1','2'];
对于(变量i=0;i
您需要为对象分配函数。不建议创建全局函数(其他脚本/框架可能会覆盖它们)

var obj={
一是功能(){
警报(“一”);
},
二是功能(){
警报(“两个”);
},
三:功能(){
警报(“三”);
}
},
调用这些=['1','2'];
对于(变量i=0;i
您可以创建包含函数的对象

var myFuncs = {
    one: function () {
        alert('one');
    },
    two: function () {
        alert('two');
    }
}

for (i = 0; i < callThese.length; ++i) {        
    myFuncs[callThese[i]]();
}
var myFuncs={
一是功能(){
警报(“一”);
},
二是功能(){
警报(“两个”);
}
}
对于(i=0;i
您可以创建包含函数的对象

var myFuncs = {
    one: function () {
        alert('one');
    },
    two: function () {
        alert('two');
    }
}

for (i = 0; i < callThese.length; ++i) {        
    myFuncs[callThese[i]]();
}
var myFuncs={
一是功能(){
警报(“一”);
},
二是功能(){
警报(“两个”);
}
}
对于(i=0;i
新手似乎经常这样做,使用存储在字符串中的函数名,然后想要调用函数。如果不这样做,肯定有更好的方法,例如存储函数的实际引用而不是字符串。如果它说
对象不是函数
那么
窗口[callthis[i]]
不是一个函数。它是什么?错误表明这些函数不是全局函数。如果它们是在另一个
函数中定义的,它们就不是
窗口的属性
@Halcyon
调用这些[i]
应该等于
@ṧ是的,但是什么是
窗口。一个
窗口。两个
,等等?新手似乎经常这样做,使用存储在字符串中的函数名,然后想要调用函数。如果不这样做,肯定有更好的方法,例如存储函数的实际引用而不是字符串。如果它说
对象不是一个函数
那么
窗口[callthis[i]]
不是函数。这是什么?错误表明这些函数不是全局函数。如果它们是在另一个
函数
中定义的,它们就不会是
窗口
的属性@Halcyon
调用这些[i]
应该等于
一个
两个
@ṧ是的,但是什么是
窗口。一个
窗口。两个
,等等。?