1. function deepClone(origin, target){
    2. var tar = target || null
    3. var str = Object.prototype.toString
    4. for(var key in origin){
    5. if(origin.hasOwnProperty(key)){
    6. if(typeof origin[key] === 'object' && origin[key] !== null){
    7. tar[key] = str.call(origin[key]) === '[object Array]' ? [] : {}
    8. deepClone(origin[key], tar[key])
    9. }else{
    10. tar[key] = origin[key]
    11. }
    12. }
    13. }
    14. return tar;
    15. }