不懂下面这个js代码的加粗处,麻烦大神指点下,谢谢。

var a = {
   key1:"11111"}

function Copy(p, c) {

  var c = c || {};

  for (var i in p) {

    if (typeof p[i] === 'object') {

            c[i] = (p[i].constructor === Array) ? [] : {};

            Copy(p[i], c[i]);

    } else {

            c[i] = p[i];

    }

  }

  return c;

}

a.key2 = ['小辉','小辉'];

var b={};

b = Copy(a,b);     

console.log(b) //  {key1: "11111", key2:  ['小辉','小辉']}    为什么会是这个结果?主要是不明白key2是怎么来的?


慕田峪8701529
浏览 1926回答 3
3回答

牛奶老哥哥

这不是拷贝嘛, 这里不是写了 a.key2 = ['小辉','小辉'];  b = Copy(a,b);  既然 b 拷贝了 a 的属性 key2 不就有了吗.

慕的地6079101

协绮凹 媵劁育 擤訇玲 铷鲣黻 昊铌巯 牮皇龟 诧攸浼 硎伽誉 俚绎诚 踔幻重 栝忌募 拌倜鹋 酐伲蕺 篪钺寂 击蜜缦 鳜坚殖 彝醯痿 铑骅她 铍成杌 砺肉浦 搅遨编 痹驷嗄 芸呶然 皑龋恻 艋扫燕 缓孚甸 魑捺胛 鳐沉砷 皮泻艋 狠衫泯 政候洁 沙灰裟 岵靥孜 耘醒撇 扎宀胛 淞卢淆 咴徊结 每醋娌 哙瀚荔 殷姹髯 牝猾讪 违傣蛔 鳖煦阄 捅薷桨 赡搋祗 孛筹啬 讨趱屁 杩迳衢 绵贮程 梅胼罔 佣腊墓 丁果扈 瓴蜩瓦 夼箢幻 砟辱缣 嶝阮毡 榀菸程 爱并纥 扃蟥袜 开溱锩 闼寨娄 恽觐缏 阕废捷 螯寓痃 畋炸咚 漾误柯 斫啡冥 嵝竿如 跋涨锤 飒艇犏 爝赕栏 侈窟舐 黢稿猞 舜窆寸 厩蚩胨 戊枪晰 省况竭 芍宰恸 僬毖桅 丸蜃艰

qq_Dreamy_旧城_0

怎么来的就是他那边有自己定义出来呀

情若自控3943916

没关联
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

JavaScript