赞
踩
提示:这里简述项目相关背景:
在console.log打印对象或者数组时,里面会显示小数点
其实用深拷贝,JSON.parse(JSON.stringify())可以解决,但是每次都在log语句里面写这个json转换,太麻烦了
我这里直接改写原来js的log语句方法
由于console.log()打印dom节点会报错
做了判断
(function() { // 保存原生的console.log引用 const originalConsoleLog = console.log; // 覆盖console.log实现 console.log = function (...args) { const modifiedArgs = args.map(arg => { if (arg instanceof Element) { return arg; // 直接返回 DOM 节点对象 } else if (typeof arg === 'object' && (Array.isArray(arg) || arg instanceof Object)) { return JSON.parse(JSON.stringify(arg)); // 使用深拷贝 } else { return arg; } }); // 调用原生console.log originalConsoleLog.apply(console, modifiedArgs); }; })();
在utils中创建一个log.js,复制上面的代码粘贴进去
import '@/utils/log'
在main.js中引入
这里用一个dom节点来看,会不会因为json深拷贝报错。
这里只有dom做了判断,如果打印的变量【包含不可序列化的对象】。就会报错,例如【函数或 Symbol】
const obj = { func: () => {} }; // 报错
const obj = {};
obj.circularReference = obj;// 报错
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。