實現一個函數clone,可以對JavaScript中的5種主要的數據類型(包括Number、String、Object、Array、Boolean)進行值復制。


function clone(obj) {
    var o;
    switch (typeof obj) {
        case "undefined":
            break;
        case "string":
            o = obj + "";
            break;
        case "number":
            o = obj - 0;
            break;
        case "boolean":
            o = obj;
            break;
        case "object": // object 分為兩種情況 對象(Object)或數組(Array)
            if (obj === null) {
                o = null;
            } else {
                if (Object.prototype.toString.call(obj).slice(8, -1) === "Array") {
                    o = [];
                    for (var i = 0; i < obj.length; i++) {
                        o.push(clone(obj[i]));
                    }
                } else {
                    o = {};
                    for (var k in obj) {
                        o[k] = clone(obj[k]);
                    }
                }
            }
            break;
        default:
            o = obj;
            break;
    }
    return o;
}

 

functionclone(obj) {var o;switch (typeof obj) {case"undefined":break;case"string": o = obj +"";break;case"number": o = obj -0;break;case"boolean": o = obj;break;case"object":// object 分為兩種情況 對象(Object)或數組(Array)if (obj ===null) { o =null;}else{if (Object.prototype.toString.call(obj).slice(8,-1) ==="Array") { o = [];for (var i =0; i <obj.length; i++) {o.push(clone(obj[i]));}}else{ o ={};for (var k in obj) { o[k] =clone(obj[k]);}}}break;default: o = obj;break;}return o;}


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM