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]}

这是chrome console的问题,之前的log会被后面的语句刷新,你debug,单步调试的时候就不会有这个问题了。