我有一个函数,我想把它称为两次或同时使用不同的值,例如:
var stopClock = false;
function myTimer(clockTime, inClockFunction) {
stopClock = false;
ChatClock = {
totalSeconds: 0,
start: function () {
this.interval = setInterval(function () {
if (!stopClock) {
inClockFunction()
}
else {
ChatClock.pause();
}
}, clockTime);
},
pause: function () {
clearInterval(this.interval);
delete this.interval;
}
};
ChatClock.start();
}
var time1 = 5000;
var func1 = function() {
alert(time1)
stopClock = true;
}
myTimer(5000, func1 )
var time2 = 8000;
var func2 = function() {
alert(time2)
}
myTimer(8000, func2 )
func2不会显示警告,因为在func1中stopClock变量更改为true,如何使用不同的值多次调用?
答案 0 :(得分:3)
变量stopClock
是全局的,因此两个函数都访问相同的变量值。仅在函数内初始化变量,你应该没问题。以下是jsFiddle。
您的javascript有更多公共/私人变量&功能冲突。这是另一个jsFiddle,其中包含所有这些(代码功能所必需)。
var timeris = function myTimer(clockTime, inClockFunction) {
var stopClock = false;
var ChatClock = {
totalSeconds: 0,
start: function () {
this.interval = setInterval(function () {
if (!stopClock) {
stopClock = inClockFunction();
}
else {
ChatClock.pause();
}
}, clockTime);
},
pause: function () {
clearInterval(this.interval);
delete this.interval;
}
};
ChatClock.start();
}
var time1 = 5000;
var func1 = function() {
alert(time1);
return true;
}
aa = new timeris(5000, func1 );
var time2 = 8000;
var func2 = function() {
alert(time2);
return false;
}
bb = new timeris(8000, func2 );