1. 程式人生 > 實用技巧 >3.實現一個函式clone 可以對Javascript中的五種主要資料型別(Number、string、Object、Array、Boolean)進行復制

3.實現一個函式clone 可以對Javascript中的五種主要資料型別(Number、string、Object、Array、Boolean)進行復制

實現一個函式CLONE 可以對JAVASCRIPT中的五種主要資料型別(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;
}