Javascript 删除两个函数使用的全局变量

Javascript 删除两个函数使用的全局变量,javascript,refactoring,Javascript,Refactoring,我在一个库文件中有这两个函数。一个启动倒计时,另一个停止倒计时。为了能够阻止它,我需要时间间隔的引用,因此必须使它成为全局的。当然这不是正确的方法。如果这些函数位于单独的实用程序文件中,应如何处理?谢谢 var timeInterval; exports.stopTimer = function() { clearInterval(timeInterval); }; exports.startTimer = function(duration, interval, displayElem

我在一个库文件中有这两个函数。一个启动倒计时,另一个停止倒计时。为了能够阻止它,我需要时间间隔的引用,因此必须使它成为全局的。当然这不是正确的方法。如果这些函数位于单独的实用程序文件中,应如何处理?谢谢

var timeInterval;

exports.stopTimer = function() {
  clearInterval(timeInterval);
};

exports.startTimer = function(duration, interval, displayElem, cbFinished, cbInterval) {
    var timer = duration * 60,
        interval = interval * 60,
        minutes,
        seconds;
        timeInterval = setInterval(function() {
        minutes = parseInt(timer / 60, 10);
        seconds = parseInt(timer % 60, 10);
        minutes = minutes < 10 ? "0" + minutes : minutes;
        seconds = seconds < 10 ? "0" + seconds : seconds;
        displayElem.text = minutes + ":" + seconds;

        if (--timer < 0) {
           clearInterval(timeInterval);
           if (cbFinished) {
             cbFinished();
           }
        }
        if (timer == interval) {
           if (cbInterval) {
             cbInterval();
           }
        }        
        }, 1000);
}; 
var时间间隔;
exports.stopTimer=函数(){
clearInterval(时间间隔);
};
exports.startTimer=函数(持续时间、间隔、displayElem、cbFinished、cbInterval){
var定时器=持续时间*60,
间隔=间隔*60,
会议记录,
秒;
timeInterval=setInterval(函数(){
分钟=parseInt(计时器/60,10);
秒=parseInt(计时器%60,10);
分钟=分钟<10?“0”+分钟:分钟;
秒=秒<10?“0”+秒:秒;
displayelm.text=分钟+“:”+秒;
如果(--定时器<0){
clearInterval(时间间隔);
如果(完成){
cbFinished();
}
}
如果(计时器==间隔){
if(cbInterval){
cbInterval();
}
}        
}, 1000);
}; 

Make
startTimer
返回一个间隔,并
停止计时器
取一个参数

utils.js

exports.startTimer = function (...) {
    return setInterval(function () {
        ...      
    }, 1000);
};

exports.stopTimer = function (interval) {
    clearInterval(interval);
};
var utils = require('./utils');
var timer = utils.startTimer();
utils.stopTimer(timer);
foo.js

exports.startTimer = function (...) {
    return setInterval(function () {
        ...      
    }, 1000);
};

exports.stopTimer = function (interval) {
    clearInterval(interval);
};
var utils = require('./utils');
var timer = utils.startTimer();
utils.stopTimer(timer);

使
startTimer
返回一个间隔,并
stopTimer
在参数中取一个

utils.js

exports.startTimer = function (...) {
    return setInterval(function () {
        ...      
    }, 1000);
};

exports.stopTimer = function (interval) {
    clearInterval(interval);
};
var utils = require('./utils');
var timer = utils.startTimer();
utils.stopTimer(timer);
foo.js

exports.startTimer = function (...) {
    return setInterval(function () {
        ...      
    }, 1000);
};

exports.stopTimer = function (interval) {
    clearInterval(interval);
};
var utils = require('./utils');
var timer = utils.startTimer();
utils.stopTimer(timer);