【发布时间】:2015-11-03 00:07:43
【问题描述】:
我有多个使用相同循环代码的函数,我想知道是否可以通过一个循环函数来简化代码,这样我就可以通过调用想要的函数名称来执行代码。
现在:
for(var i=0;i<all;i++){ someFunction(i) }
需要:
cycle(someFunction);
function cycle(name){
for(var i=0;i<all;i++){
name(i);
}
}
我尝试通过使用“窗口”来执行此操作,但我没有收到错误,但该函数未执行。
var MyLines = new lineGroup();
MyLines.createLines(); // works
MyLines.addSpeed(); // doesn't work
var lineGroup = function(){
this.lAmount = 5,
this.lines = [],
this.createLines = function (){
for(var i=0,all=this.lAmount;i<all;i++){
this.lines[i] = new line();
}
},
this.addSpeed = function (){
// no error, but it's not executing addSpeed function
// if i write here a normal cycle like in createLines function
// it's working ok
this.linesCycle("addSpeed");
},
this.linesCycle = function(callFunction){
for(var i=0,all=this.lAmount;i<all;i++){
window['lineGroup.lines['+i+'].'+callFunction+'()'];
}
}
}
var line = function (){
this.addSpeed = function (){
console.log("works");
}
}
【问题讨论】:
标签: javascript cycle simplify