1. function deepClone(currobj) {
    2. if (typeof currobj !== "object") {
    3. return currobj;
    4. }
    5. if (currobj instanceof Array) {
    6. var newobj = [];
    7. } else {
    8. var newobj = {};
    9. }
    10. for (var key in currobj) {
    11. if (typeof currobj[key] !== "object") {
    12. // 不是引用类型,则复制值
    13. newobj[key] = currobj[key];
    14. } else {
    15. // 引用类型,则递归遍历复制对象
    16. newobj[key] = deepClone(currobj[key]);
    17. }
    18. }
    19. return newobj;
    20. }