美文网首页
4-2浅拷贝

4-2浅拷贝

作者: 大庆无疆 | 来源:发表于2019-03-12 17:01 被阅读0次

浅拷贝(只复制了对象的一层)

---------------------浅拷贝(只复制了对象的一层)------------------
//将对象obj1的内容拷贝给obj2

// 对象obj1
var obj1 = {
    name: 'salay',
    age: 23,
    hoppy: 'soprt',
    //dog对象
    dog: {
        name: '小明',
    }
}
// 对象obj2
var obj2 = {}
// 使用for-in循环遍历obj1对象
for (var key in obj1) {
    obj2[key] = obj1[key];
}

//修改obj1中的属性的值
obj1.age = 45;
obj1.dog.name = "小红";

console.log(obj1);
console.log(obj2);
输出发现obj2对象的age属性没有改,但是dog对象的name属性改为跟obj1中的一样了

以上就是浅拷贝,obj1中的属性赋值给obj2,如果是基本数据类型的话,相当于复制一份相同的值
如果是对象的话,复制的是对象的引用地址(只复制了对象的一层)


---------------------把浅拷贝的代码封装成函数---------------------------
// 我们可以把拷贝的代码封装成一个函数,以便下次使用
// 将o1拷贝给o2
function easyCopy(o1, o2) { 
    for (var key in o1) {
        o2[key] = o1[key];
    }
}

相关文章

  • 4-2浅拷贝

    浅拷贝(只复制了对象的一层)

  • iOS深拷贝(MutableCopy)与浅拷贝(Copy)的区别

    深拷贝和浅拷贝的概念 iOS中有深拷贝和浅拷贝的概念,那么何为深拷贝何为浅拷贝呢?浅拷贝:浅拷贝并不拷贝对象本身,...

  • iOS--拷贝相关题

    1、什么是深拷贝什么是浅拷贝?浅拷贝和深拷贝的区别 * 浅拷贝(shallow copy):指针拷贝,对于被拷贝对...

  • iOS - copy 与 mutableCopy

    一说到拷贝,就不得不提浅拷贝和深拷贝。 何谓浅拷贝?何谓深拷贝? 往简单的说: 浅拷贝:拷贝地址。 深拷贝:拷贝内...

  • iOS 中 load 和 initialize 方法调用机制

    深拷贝和浅拷贝 深拷贝同浅拷贝的区别:浅拷贝是指针拷贝,对一个对象进行浅拷贝,相当于对指向对象的指针进行复制,产生...

  • js浅拷贝深拷贝

    js浅拷贝,深拷贝的简单实现 基础数据 浅拷贝 深拷贝

  • 深拷贝和浅拷贝

    1.深拷贝:地址的拷贝 2.浅拷贝:是值得拷贝 深拷贝和浅拷贝的区别 A拷贝B B变A变是浅拷贝 A拷贝B B变A...

  • JavaScript深拷贝、浅拷贝

    JavaScript深拷贝、浅拷贝 浅拷贝:浅拷贝只是复制了内存地址,如果原地址中的对象改变了,浅拷贝出来的对象也...

  • JS中的深拷贝与浅拷贝

    知乎:js中的深拷贝和浅拷贝? 掘金: js 深拷贝 vs 浅拷贝 前言 首先深拷贝与浅拷贝只针对 Object,...

  • iOS copy & mutableCopy

    Copy的目的是建立副本,同时修改原始对象和复本不会互相干扰. 浅拷贝 & 浅拷贝 浅拷贝 浅拷贝是指针拷贝,对一...

网友评论

      本文标题:4-2浅拷贝

      本文链接:https://www.haomeiwen.com/subject/ervnpqtx.html