js封装一个公用的方法,如果没有给方法中传入值,那么就让差值表达式里面显示一个从00:00:00动态的每秒递增的计时器
时间: 2024-09-23 11:13:56 浏览: 35
开发用到的js封装方法(20种)
在JavaScript中,你可以创建一个函数,利用`setInterval`函数来实现这样的功能,如果传入的时间参数为空或者未提供,则默认开始一个递增的计时器。下面是一个简单的示例:
```javascript
function countUp(defaultTime = '00:00:00') {
let timer;
const startTimer = function(time) {
if (time === undefined) { // 如果没有传入时间
time = defaultTime.split(':'); // 解析默认时间
timer = setInterval(() => {
let minutes = parseInt(time[0], 10);
let seconds = parseInt(time[1], 10) + 1;
// 如果秒数超过59,进位到分钟并更新分钟数
if (seconds >= 60) {
seconds = 0;
minutes++;
// 若分钟超过59,进位到小时
if (minutes >= 60) {
minutes = 0;
}
}
time[0] = String(minutes).padStart(2, '0');
time[1] = String(seconds).padStart(2, '0');
console.log(`当前时间为: ${time.join(':')}`);
}, 1000); // 每秒更新一次
} else {
clearInterval(timer); // 清除已存在的计时器
// 这里可以处理传入的时间并设置计时器
}
};
return {
start: () => startTimer(),
stop: () => clearInterval(timer), // 可以添加停止计时的方法
};
}
// 使用示例
const countdown = countUp();
countdown.start(); // 默认从00:00:00开始
```
这个封装后的`countUp`函数返回一个包含`start`和`stop`方法的对象,可以根据需要启动或停止计时器。如果你想要改变默认时间,可以直接调用`countUp('新的默认时间')`。
阅读全文