一些封装好的常用JavaScript方法(上)
- 函数柯理化
function curryItem(func) {
var length = func.length,
args = [];
var result = function (arg) {
args.push(arg);
length--;
if (length <= 0) {
return func.apply(this, args);
} else {
return result;
}
}
return result;
}
- 时间格式化
function formatDate(time, str) {
var obj = {
yyyy: time.getFullYear(),
yy: ("" + time.getFullYear()).slice(-2),
M: time.getMonth() + 1,
MM: ("0" + (time.getMonth() + 1)).slice(-2),
d: time.getDate(),
dd: ("0" + time.getDate()).slice(-2),
H: time.getHours(),
HH: ("0" + time.getHours()).slice(-2),
h: time.getHours() % 12,
hh: ("0" + time.getHours() % 12).slice(-2),
m: time.getMinutes(),
mm: ("0" + time.getMinutes()).slice(-2),
s: time.getSeconds(),
ss: ("0" + time.getSeconds()).slice(-2),
w: ['天', "一", '二', "三", '四', "五", '六'][time.getDay()]
};
return str.replace(/([a-z]+)/ig, function ($1) {
return obj[$1]
});
}
- 获取 url 上的参数
function getUrlParam(sUrl, sKey) {
var result = {};
sUrl.replace(/(\w+)=(\w+)(?=[&|#])/, function (element, key, value) {
if (!result[key]) {
result[key] = value;
} else {
var temp = result[key];
result[key] = [].concat(temp, value);
}
})
if (!sKey) {
return result;
} else {
return result[sKey] || '';
}
}
- 防抖
function debounce(handle, delay) {
var timer = null;
return function () {
var _self = this,
_args = arguments;
clearTimeout(timer);
timer = setTimeout(function () {
handle.apply(_self, _args)
}, delay)
}
}
- 节流
function throttle(handler, wait) {
var lastTime = 0;
return function (e) {
var nowTime = new Date().getTime();
if (nowTime - lastTime > wait) {
handler.apply(this, arguments);
lastTime = nowTime;
}
}
}
这里是万物之恋,我们下次再见了!