[펌]자바스크립트에서의 객체 깊은 복사하기..!!
소스 출처 : http://web.dicnote.com/bbs/board.php?bo_table=web_tip&wr_id=17&page=9&sca=&sfl=&stx=&spt=0&page=9&cwin=
//생성자 가져오기
function getConstructorName(o) {
if (o.constructor) {
var code = o.constructor.toString();
match = code.match(/function ([^\(]*)/);
return (match && match[1]) || null;
}
return null;
}
//실제 깊은 복사 수행하는 부분
function deepCopy(src) {
var constructor;
var dst;
if ((typeof src == "object") && (constructor = getConstructorName(src))) {
dst = eval("new " + constructor + "()");
if (src.prototype)
for (var key in src.prototype)
dst.prototype[key] = deepCopy(src.prototype[key]);
for (var key in src)
dst[key] = deepCopy(src[key]);
return dst;
}
dst = src;
return dst;
}