【发布时间】:2015-10-22 23:56:36
【问题描述】:
我正在尝试在 JavaScript 中做一些 OOP,并且我正在尝试动态设置一些东西,以便我可以调用给定对象或函数中的所有函数。
我有一个循环,每秒调用一个函数,但在某些时候,该函数需要做不同的事情。所以我想我会每秒调用一次该函数,然后使用“原型”属性向该函数添加额外的函数。
基本上有一个不断调用函数的无限循环,并且根据调用该函数时的用户交互,它可能需要执行不同的函数。
var MAIN = function() {
var self = this;
this.Tick = 1;
this.Timer = function(){};
this.StartTimer = function(loop, interval) {
self.Timer = setInterval(loop, interval);
}
this.StopTimer = function() {
clearInterval(self.Timer);
self.Tick = 1;
}
this.Loop = function() {
console.log(self.Tick);
switch (self.Tick) {
case 2:
self.Phase1.init();
break;
case 4:
self.Phase2();
break;
case 6:
self.Phase3();
break;
case 8:
self.Phase4();
break;
case 10:
self.Tick = 0;
break;
}
self.Tick++;
}
this.Phase1 = function() {
}
我尝试了两种在 Phase1 中列出函数的方法。我尝试过使用函数和对象,但最接近执行其中的函数列表的方法是列出每个函数的名称。
函数尝试
this.Phase1 = function() {
this.Phase1.Test1 = function() {
alert("Test1");
};
this.Phase1.Test2 = function() {
alert("Test2");
};
}
对象尝试
this.Phase1 = {
Test1: function() {
alert("Test1");
},
Test2: function() {
alert("Test2");
}
}
我只是想获取每秒调用的函数的动态列表。
手动调用该函数没有问题。我知道我可以使用
MAIN.Phase1.Test1();
但我想动态地做到这一点。
【问题讨论】:
标签: javascript jquery function oop