这是我的老问题的延续
这是我创建一个新学生对象的函数:
function student(id, name, marks, mob, home){
this.id = id;
this.name = name;
this.marks = marks;
this.contacts = {};
this.contacts.mob = mob;
this.contacts.home = home;
this.toContactDetailsString = function(){
return this.name +':'+ this.mob +', '+ this.home
}
}
我想在对象内部初始化时创建对象的副本:我想出了这个:
function student(id, name, marks, mob, home){
this.id = id;
this.name = name;
this.marks = marks;
this.contacts = {};
this.contacts.mob = mob;
this.contacts.home = home;
this.toContactDetailsString = function(){
return this.name +':'+ this.mob +', '+ this.home
}
this.baseCopy = this; //Not sure about this part
}
但问题是它给了我baseCopy中当前对象副本的无限循环;而且,当我更新对象的任何属性时,它也会自动更新。
1. 这怎么可能,我可以在创建对象时在该对象内部保留具有初始值的对象的副本?
2.是否可以不复制功能
3.我很想知道如果没有硬编码属性名称和使用纯JS这是否可能