文件地址:工具类地址https://github.com/hongchengfhc/JavaScriptTool
示例:
/**
* @param {Function} function
* @param {Number} time
* @description 延迟函数
* */
tool.delay = (function() {
var timer = 0;
return function(callback, time) {
clearTimeout(timer);
timer = setTimeout(callback, time);
};
})();
/**
* @param {Function} function
* @description 定时器
* */
tool.timer = function() {
var data = {
toDo: arguments[0].toDo || function() {},
didStop: arguments[0].didStop || function() {},
interval: arguments[0].interval || 1000,
repeats: arguments[0].repeats || true
}
var timer_t = null;
var count = 1;
var obj = {
clear: function() {
clearInterval(timer_t);
data.didStop();
}
}
timer_t = setInterval(function() {
if(data.repeats) {
data.toDo(obj);
} else {
if(count > 0) {
count--;
data.toDo(obj);
} else {
clearInterval(timer_t);
timer_t = null;
data.didStop();
}
}
}, data.interval);
};
/*
* @param {Object} obj
* @description 克隆一个对象
* */
tool.clone = function(obj) {
// Handle the 3 simple types, and null or undefined
if(null == obj || "object" != typeof obj) return obj;
// Handle Date
if(obj instanceof Date) {
var copy = new Date();
copy.setTime(obj.getTime());
return copy;
}
// Handle Array
if(obj instanceof Array) {
var copy = [];
for(var i = 0, len = obj.length; i < len; ++i) {
copy[i] = Object.assign({},obj[i]);
}
return copy;
}
// Handle Object
if(obj instanceof Object) {
return Object.assign({},obj);
}
console.warn("Unable to copy obj! Its type isn't supported.");
throw new Error("Unable to copy obj! Its type isn't supported.");
};