猿问

JS浅拷贝时遇到的一个问题

   var extend = function (target, source) {

      for (var key in source) {

         target[key] = source[key];

      }

   };


   var target = {name: 'target', skill: 'JS'};

   var source = {name: 'source', friends: ['小明', '小宋']};

   extend(target, source);

   

    **疑问:为什么这里的 friends 提前变化了**

   console.log(target.friends); // ["小明", "小宋"]

   console.log(target); // {name: "source", skill: "JS", friends: [1, 2]} 


   target.name = 'tom';

   target.skill = 'PHP';

   target.friends = [1, 2];

   console.log(target.friends); // [1, 2]

   console.log(target); // {name: "tom", skill: "PHP", friends: [1, 2]}

慕仙森
浏览 432回答 1
1回答
随时随地看视频慕课网APP

相关分类

JavaScript
我要回答