admin管理员组

文章数量:1401215

var action = ['function1','function2' etc ]
var obj = new objectcreate ();

for (functionname in action){
    obj+'.'+action[variablename]+'()';      
}

the functions are already generated I just wanna go through an array and execute all the functions it on the object i created thanks for your help

var action = ['function1','function2' etc ]
var obj = new objectcreate ();

for (functionname in action){
    obj+'.'+action[variablename]+'()';      
}

the functions are already generated I just wanna go through an array and execute all the functions it on the object i created thanks for your help

Share Improve this question edited Sep 4, 2015 at 21:20 Barmar 784k57 gold badges548 silver badges660 bronze badges asked Jan 4, 2010 at 23:21 salmanesalmane 4,84713 gold badges50 silver badges61 bronze badges 1
  • for (functionname in action) doesn't do what you think; functionname will be properties of the Array, which may not be in numerical order and can return other properties depending on browser. Never use for...in on Array. Instead use the plain old C-style loop for(var i= 0; i<array.length; i++). – bobince Commented Jan 5, 2010 at 0:10
Add a ment  | 

3 Answers 3

Reset to default 3

obj[action[functionname]](); will do the trick.

You should be able to do this.

obj[action[functionName]]();

None of the answers above worked for me.

Noting that we are 10.5 years on from the original post the chances are JS have evolved.

My solution is:

window[action[functionName]]();

A solution tailored to the original question is as follows:

var action = ['test1','test2'];


function test1(){
   alert("test 1 running");
}

function test2(){
    alert("test 2 running");
}

for (var i=0; i<action.length; i++){
    window[action[i]]();
}

Expected output is an alert box saying "test 1 running" followed by another alert box saying "test 2 running".

本文标签: Javascript How do i call functions from an array of function namesStack Overflow