循環参照を含むオブジェクトのディープコピー - 素人がプログラミングを勉強するブログ http://d.hatena.ne.jp/javascripter/20081115/1226739628 function deepCopy(orig) { var clone = {}; return (function (orig, clone, visited, ref) { for (var k in orig) { var v = orig[k]; if (v instanceof Object) { var i = visited.indexOf(v); if (i == -1) { var o = {}; visited.push(v); ref.push(o); clone[k] = arguments.callee(v, o, visited, ref); } else { clo