190819-utils
Version:
尚硅谷大前端自定义工具函数库
77 lines (66 loc) • 1.79 kB
HTML
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Document</title>
</head>
<body>
<script type="text/javascript">
console.log(Object.prototype.toString.call([123]));
// 自己封装一个方法实现对所有数据类型的判断
function checkType(obj){
return Object.prototype.toString.call(obj).slice(8,-1)
}
function add(){
return 100
}
console.log(checkType(add));
// 封装一个方法实现深拷贝 主要针对数据和对象拷贝
function deepCopy(data){
let dataType = checkType(data)
let result
if(dataType === 'Array'){
result = []
}else if(dataType === 'Object'){
result = {}
}else {
return data
}
// 真正的拷贝过程
for(let key in data){
if(checkType(data[key]) === 'Array' || 'Object'){
result[key] = deepCopy(data[key])
}else{
result[key] = data[key]
}
}
return result
}
// 测试
let myObj = {
name:'zhaoliying',
sex:['male','famale','middle'],
movie:{
name:'长江一号',
timeLong:120,
main:['潘长江','ly']
}
};
let newResult = deepCopy(myObj)
newResult.movie.main[0] = 'lianpengwei'
console.log(myObj,newResult);
// let arr = [1,2,3]
// for(let key in arr){
// console.log(key,arr[key]);
// }
// let obj = {
// name:'lianpengwei',
// age:28,
// sex:'mail'
// }
// for(let key in obj){
// console.log(key,obj[key]);
// }
</script>
</body>
</html>