UNPKG

190819-utils

Version:

尚硅谷大前端自定义工具函数库

77 lines (66 loc) 1.79 kB
<!DOCTYPE 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>