JS深度克隆對象

/**
 * 深度克隆對象,防止拿到對象的引用地址
 * @param obj
 * @returns
 */
function deepCloningObj(obj) {
    var str, newobj = obj.constructor === Array ? [] : {};
    if (typeof obj !== 'object') {
        return;
    } else if (window.JSON) {
        str = JSON.stringify(obj), //序列化對象
            newobj = JSON.parse(str); //還原
    } else {
        for (var i in obj) {
            newobj[i] = typeof obj[i] === 'object' ? deepCloningObj(obj[i]) : obj[i];
        }
    }
    return newobj;
}

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章