Javascript深拷贝 浅拷贝
代码实现
<!DOCTYPE html>
<html>
<head>
<title>深拷贝 浅拷贝</title>
</head>
<body>
<script>
let obj={
name:"lyh",
age:20,
}
let hd=Object.assign({},obj);
let hd={...obj};
hd.name="Lyh";
let objc={
name:"ly",
age:18,
show:{
title:"( $ _ $ )"
},
arr:[]
}
function copy(obj) {
let res=obj instanceof Array ? [] : {};
for (const [k,v] of Object.entries(obj)) {
res[k]= typeof v=="object"?copy(v):v;
}
return res;
}
let xj=copy(objc);
console.log(JSON.stringify(objc,null,2));
console.log(JSON.stringify(xj,null,2));
function user(name,age) {
return{
name,
age,
show(){
console.log(this.name+this.age)
}
}
}
let lyh=new user("Lyh",20);
lyh.show();
function User(name,age) {
this.name=name;
this.age=age;
this.showtime=function(){
console.log(this.name+this.age);
};
}
let ly=new User("Lyh",18);
ly.showtime();
function User1(name,age) {
let date={name,age};
let info=function () {
return date.age>50?"中年":"青年";
};
this.show=function(){
return console.log(info());
}
}
let l1=new User1("Lyh",18);
l1.show();
</script>
</body>
</html>