为了账号安全,请及时绑定邮箱和手机立即绑定

函数通过调用自身来复制 JavaScript 中的对象,需要帮助理解逻辑

函数通过调用自身来复制 JavaScript 中的对象,需要帮助理解逻辑

心有法竹 2021-06-09 17:33:25
我找到了这个用于复制对象的 JavaScript 代码,代码正在做它应该做的事情,但我不明白的是函数何时调用自身;为什么newObject在第一次迭代中没有丢失它的值,它应该在函数调用自身并创建一个新的时被覆盖newObject?这是否意味着当一个函数调用自身时,它仍然保留newObject在它调用自身之前创建的第一个副本?const o = {  a: 'a',  b: 'b',  obj: {    key: 'key',  },}const o2 = oo2.a = 'new value'// o and o2 reference the same objectconsole.log(o.a)// this shallow-copies o into o3const o3 = Object.assign({}, o)// deep copyfunction deepCopy(obj) {  // check if vals are objects  // if so, copy that object (deep copy)  // else return the value  const keys = Object.keys(obj)  const newObject = {}  for (let i = 0; i < keys.length; i++) {    const key = keys[i]    if (typeof obj[key] === 'object') {      newObject[key] = deepCopy(obj[key])    } else {      newObject[key] = obj[key]    }  }  return newObject}const o4 = deepCopy(o)o.obj.key = 'new key!'console.log(o4.obj.key)
查看完整描述

1 回答

  • 1 回答
  • 0 关注
  • 102 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信