美文网首页
2019-01-29 对象拷贝

2019-01-29 对象拷贝

作者: CarinaXiaoWang | 来源:发表于2019-01-30 10:25 被阅读0次
oldObj = {
  prop: 'old',
  sonObj: {
    name: 'old'
  }
}

已经分不清什么浅拷贝了

浅拷贝

newObj111 = oldObj

一级拷贝

newObj222 = Object.assign({}, oldObj,{prop1: '1'})      // sunObj 仍然引用的地址
newObj222.__proto__
// {constructor: ƒ, __defineGetter__: ƒ, __defineSetter__: ƒ, hasOwnProperty: ƒ, __lookupGetter__: ƒ, …}

newObj333 = Object.create(oldObj)  // 创建的对象拥有明确的原型
newObj333.__proto__
// {name: "xiaoming", age: 23, sonObj: {…}}age: 23name: "xiaoming"sonObj: {name: 3}__proto__: Object
underscore
var obj = _.cloneDeep(oldObj);

深拷贝

json 装换
// 不能转换 function 和 regExp
var obj1 = { fun: function(){ console.log(123) } };
var obj2 = JSON.parse(JSON.stringify(obj1));
// {}
函数
function deepClone (oldObj) {
  let newObj = {}
  for (let i in oldObj) {
    const value = oldObj[i]
    if (typeof value === 'Object' || typeof value === 'Array') {
        newObj[i] = deepCopy(value)
    } else {
        newObj[i] = oldObj[i]
    }
  }
  return newObj
}
newObj444 = deepClone(oldObj)
函数改版(最佳实践)

jQuery
var obj = $.extend(true, {}, oldObj);
Lodash
var obj = _.cloneDeep(oldObj);

内容浅显,欢迎纠错补充

相关文章

  • 2019-01-29 对象拷贝

    已经分不清什么浅拷贝了 浅拷贝 一级拷贝 underscore 深拷贝 json 装换 函数 函数改版(最佳实践)...

  • java 对象的拷贝

    拷贝:即复制 对象拷贝:即对象复制 java 对象拷贝分类:浅拷贝、深拷贝 java 对象的浅拷贝和深拷贝针对包含...

  • Java-序列化—(三)序列化实现深拷贝

    浅拷贝是指拷贝对象时仅仅拷贝对象本身(包括对象中的基本变量),而不拷贝对象包含的引用指向的对象。深拷贝不仅拷贝对象...

  • Objective-C中的深拷贝与浅拷贝

    一、概念 浅拷贝——只拷贝指向对象的指针,不拷贝引用对象本身。 深拷贝——拷贝引用对象本身。将对象obj,拷贝后得...

  • iOS - copy与mutableCopy

    浅拷贝与深拷贝 浅拷贝:指针拷贝,不产生新的对象,源对象的引用计数器+1 深拷贝:对象拷贝,会产生新的对象,源对象...

  • 深拷贝和浅拷贝不同

    浅拷贝:指针(地址)拷贝,不会产生新对象深拷贝:内容拷贝,会产生新对象 非容器类对象的深拷贝、浅拷贝 非容器类对象...

  • 前端笔记(二) 对象的深浅拷贝,函数的防抖与节流,函数柯里化 ,

    对象的深浅拷贝 对象的深拷贝与浅拷贝的区别: 浅拷贝:仅仅复制对象的引用, 而不是对象本身。 深拷贝:把复制的对象...

  • 引用赋值和浅拷贝和深拷贝

    1.对象的引用赋值 2.对象的浅拷贝 浅拷贝:是指拷贝对象时仅仅拷贝对象本身(包括对象中的基本变量),而不拷贝对象...

  • 深浅copy

    概念:浅拷贝:不拷贝对象,只拷贝对象指针,因此不会产生新的对象。深拷贝:拷贝对象到新的内存,因此会产生新的对象。 ...

  • 2018-10-10函数基础

    深拷贝和浅拷贝 深拷贝 copy.deepcopy(对象)浅拷贝 copy.copy(对象)深拷贝: 将对象对应的...

网友评论

      本文标题:2019-01-29 对象拷贝

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