js封装方法实现深拷贝
1.新建名为tools.js的文件,添加内容:
export const deepClone = (obj, result) => {
var result = result || {};
for (var prop in obj) {
if (obj.hasOwnProperty(prop)) {
if (typeof obj[prop] == 'object' && obj[prop] !== null) {
// 引用值(obj/array)且不为null
if (Object.prototype.toString.call(obj[prop]) == '[object Object]') {
// 对象
result[prop] = {};
} else {
// 数组
result[prop] = [];
}
deepClone(obj[prop], result[prop])
} else {
// 原始值或func
result[prop] = obj[prop]
}
}
}
return result;
}
2.在页面中引入并使用
// 引入
import { deepClone } from "@/utils/tools.js";
// 方法中使用
var formData = {
name: "张三",
age: 18,
likes: ["乒乓", "篮球", "跑步"]
};
var data = deepClone(formData);
console.log(data);