javascript深层克隆

<!DOCTYPE html>
<html>
<head>
    <title>Title</title>
</head>
<body>
<script>
    //深层克隆
    var obj = {
        name : '神鸟',
        age : 23,
        sex : 'man',
        arr : [1,2,[1,2]]
    };
    var deepClone = function (origin, target) {
        var target = target || {},
            toStr = Object.prototype.toString,
            arrStr = '[object Array]';
        for (var prop in origin) {
            if (origin.hasOwnProperty(prop)) {
                if (origin[prop] !== null && typeof origin[prop] === 'object') {
                    target[prop] = toStr.call(origin[prop]) === arrStr ? [] : {};
                    deepClone(origin[prop], target[prop]);
                }else {
                    target[prop] = origin[prop];
                }
            }
        }
        return target;
    };
    var cloneobj = deepClone(obj);
</script>
</body>
</html>
posted @ 2017-12-12 11:34  FE-神鸟  阅读(76)  评论(0)    收藏  举报