第一种:JSON.stringify()
let obj = {
username:admin,
password:"123456"
}
//先转为json格式字符,再转回来
let newObj = JSON.parse(JSON.stringify(obj));
obj.password = MD5(obj.password);
console.log(newObj.password); //输出 123456
第二种:使用第三方库lodash中的cloneDeep()方法
import lodash from 'lodash';
let obj = {
username:admin,
password:"123456"
}
const newObj = lodash.cloneDeep(obj);
obj.password = MD5(obj.password);
console.log(newObj.password); //输出 12345
第三种:JQuery的extend()方法进行深拷贝
let obj = {
username:admin,
password:"123456"
}
let newObj= $.extend(true, {}, obj); //拷贝完成
obj.password = MD5(obj.password);
console.log(newObj.password); //输出 12345
第四种:递归方式
//函数拷贝
let obj = {
username:admin,
password:"123456"
}
const setObj = (obj) => {
//变量先置空
let newobj = null;
//判断是否需要继续进行递归
if (typeof (obj) == 'object' && obj !== null) {
newobj = obj instanceof Array ? [] : {};
//进行下一层递归克隆
for (var i in obj) {
newobj[i] = setObj(obj[i])
}
}else {
newobj = obj
}
return newobj
}
var newObj = setObj(obj)
obj.password = MD5(obj.password);
console.log(newObj.password); //输出 12345
今天的文章js深拷贝的方法_jquery深拷贝分享到此就结束了,感谢您的阅读,如果确实帮到您,您可以动动手指转发给其他人。
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。
如需转载请保留出处:https://bianchenghao.cn/46269.html