ES6实现一些常见算法

329 阅读1分钟

深度克隆

var obj = { name: 'lyz', info: { age: 24, score: [99, 100, 98] }, somke: null };

function deepClone_Es6(origin, target) {
    if (Object.prototype.toString.call(origin) == '[object Object]') {
        target = { ...origin };
    } else {
        target = [...origin];
    }
    for (var prop in target) {
        if (typeof target[prop] == 'object' && target[prop] != null) {
            if (target.hasOwnProperty(prop)) {
                target[prop] = deepClone_Es6(target[prop]);
            }
        }
    }
    return target;
}

var obj2 = deepClone_Es6(obj);
obj2.name = 'ok';
obj2.info.age = 22;
obj2.info.score = 'no date';
obj2.somke = true;
console.log(obj2, obj);