tools
程序员文章站
2022-06-24 17:06:43
...
// 判断是否空值
export function isDefined(x) { return x !== null && x !== undefined }
// 判断是数字且不为NAN
export function isNum(x) {
return typeof x === 'number' && !isNaN(x)
}
/**
* 深度克隆
* @param origin 被拷贝的原对象
* @param target 拷贝出来的对象
* @return 拷贝出来的对象
*/
export function deepClone(origin, target = {}) {
const toStr = Object.prototype.toString
for (const prop in origin) {
// eslint-disable-next-line no-prototype-builtins
if (origin.hasOwnProperty(prop)) { // 不能把原型链上的一起拷贝了
// 判断是元素类型还是引用类型
if (typeof (origin[prop]) === 'object' && origin[prop]) {
target[prop] = toStr.call(origin[prop]) === '[object Array]' ? [] : {}
deepClone(origin[prop], target[prop]) // 递归调用
} else {
target[prop] = origin[prop] // 原始类型直接复制
}
}
}
return target
}
/**
* debounce
* @param {*} fn
* @param {*} delay
* @returns
*/
export function debounce(fn, delay = 300) {
let timer = false
return function() {
if (timer) {
clearTimeout(timer)
timer = setTimeout(fn, delay)
} else {
timer = setTimeout(fn, delay)
}
}
}
上一篇: Golang 错误处理
推荐阅读
-
利用Kotlin Tools如何快速添加Kotlin依赖详解
-
PHP调试工具 PHP debug tools
-
.net core 数据迁移【Microsoft.EntityFrameworkCore.Tools】
-
Kali 2020.1版本 安装VMware Tools
-
Eclipse怎么在线配置Hibernate Tools?
-
安装Daemon Tools重启导致蓝屏是什么情况如何解决
-
DAEMON Tools加载错误或无法载入镜像文件
-
彻底删除Daemon tools虚拟光驱不想让其留在电脑上
-
MySQL图形工具 MySQL GUI Tools的安装使用方法
-
pycharm配置pyqt5-tools开发环境的方法步骤