У меня есть вопрос клонирования javascript-объекта. Я хотел бы иметь возможность клонировать методы объекта, которые были изменены по сравнению с теми, которые определены прототипом объекта или добавлены в объект после создания экземпляра. Возможно ли это?
Настройка здесь - это определенный мной класс javascript, так что я в порядке, когда пишу метод клонирования, специфичный для моего класса объектов. Я просто не могу понять, как копировать методы.
Пример:
function myObject( name, att, dif ) {
/* 'privileged' methods */
this.attribute = function(newAtt) { // just a getter-setter for the 'private' att member
if(newAtt) { att = newAtt; }
return att;
}
// 'public' members
this.printName = name;
}
myObject.prototype.genericMethod = function() {
// does what is usually needed for myObjects
}
/* Create an instance of myObject */
var object153 = new myObject( '153rd Object', 'ABC', 2 );
// object153 needs to vary from most instances of myObject:
object153.genericMethod = function() {
// new code here specific to myObject instance object153
}
/* These instances become a collection of objects which I will use subsets of later. */
/* Now I need to clone a subset of myObjects, including object153 */
var copyOfObject153 = object153.clone();
// I want copyOfObject153 to have a genericMethod method, and I want it to be the one
// defined to be specific to object153 above. How do I do that in my clone() method?
// The method really needs to still be called 'genericMethod', too.