1. 程式人生 > 實用技巧 >手寫淺拷貝

手寫淺拷貝

記錄貼

// 手寫淺拷貝
    let arr = [1,2,3,4,5]
    let obj = {
        name:1
    }
    function My(){
        this.age = 0
        
        My.prototype.nes = function(){
            console.log("哈哈")
        }
    }
    
    let Obj = new My()
    // assing
    let news = Object.assign({},obj)
    news.name 
= 132 console.log(news,obj) //Array.concat;Array.slice;[...Array] console.log(shallowCopy(Obj)) function type(data){ let datas = Object.prototype.toString.call(data).slice(8,-1) return datas } function shallowCopy(target){ let result
= type(target) == "Object"?{}:[] for(let e in target){ if(target.hasOwnProperty(e)){ if(typeof target[e] === "object"){ if(target[e] === null){ result[e] = null }else{ shallowCopy(target[e]) } }
else{ result[e] = target[e] } } } return result }