在下面的Javascript中,结果是它显示1、2、3。我希望它显示为:1、2、2。我的理解是Object.assign
会将值复制到一个对象中。
var myobj = {
mynum: 1,
mystr: "test",
mydata: 6
}
alert(myobj.mynum);
let secondobj = myobj;
secondobj.mynum = 2;
alert(myobj.mynum);
let thirdobj = Object.assign(myobj);
thirdobj.mynum = 3;
alert(myobj.mynum);
最佳答案
定义为Object.assign(目标,源)
因此,这将起作用:
var myobj = {mynum: 1, mystr: "test", mydata: 6}
alert(myobj.mynum);
let secondobj = myobj;
secondobj.mynum = 2;
alert(myobj.mynum);
let thirdobj = {};
Object.assign(thirdobj, myobj);
thirdobj.mynum = 3;
alert(myobj.mynum);
您还可以使用:
let thirdobj = { ... myobj};
thirdobj.mynum = 3;
alert(myobj.mynum);
为了简洁