JavaScript——浅拷贝的四种方法


       let obj = {
                name:'AAA',
                age:18
            }
            
            // 1,新建新对象,复制原来对象的值
            let obj1 = {
                name:obj.name,
                age:obj.age
            }
            obj1.name = 'BBB'
            // console.log(obj); // AAA
            // console.log(obj1); // BBB
            
            // 2,新建对象,循环添加
            let obj2 = {}
            for(let key in obj){
                obj2[key] = obj[key]
            }
            obj2.name = 'CCC'
            // console.log(obj); // AAA
            // console.log(obj2); // CCC
            
            // 3, Object.assign()
            let obj3 = Object.assign({},obj) // 第一个参数目标对象要加上
            obj3.name = 'DDD'
            console.log(obj); // AAA
            console.log(obj3); // DDD
            
            // 4,点语法展开
            let obj4 = Object.assign({...obj})
            obj4.name = 'EEE'
            console.log(obj); // AAA
            console.log(obj4); // EEE

 

什么是对象的浅拷贝?

简单的理解就是拷贝了对象的第一层属性,如果对象的某个属性还有第二层,第三层的数据,浅拷贝是访问不到的。

比如说某个属性的值是对象,那浅拷贝无法复制该对象的数据。

 


免责声明!

本站转载的文章为个人学习借鉴使用,本站对版权不负任何法律责任。如果侵犯了您的隐私权益,请联系本站邮箱yoyou2525@163.com删除。



 
粤ICP备18138465号  © 2018-2025 CODEPRJ.COM