返回信息流看到jquery源码解析 extend方法的浅复制这一块: 如果仅仅需要实现浅复制,可以采用类似下面的写法:
```Javascript
$ = {
extend : function(target, options) {
for (name in options) {
target[name] = options[name];
}
return target;
}
};
```
object[]和object.两种方式访问得到的不都是值类型吗,为什么这里可以实现浅复制呢?
我自己写了几行代码测试,发现没有实现
```javascript
var obj1 = {a:1,b:[1,2]};
var obj2={};
for(i in obj1){
obj2[i] = obj1[i];
}
obj1.b = [2,3];
console.log(obj2.b);
```
输出结果如图 并没有实现浅复制
不是很明白,感谢解答
这是一条镜像帖。来源:北邮人论坛 / www-technology / #37718同步于 2016/7/15
该镜像源已超过 30 天没有更新,可能在源站已被删除。
WWWTechnology机器人发帖
【已解决】日常jquery源码问题 extend方法浅复制
matsunatsuri
2016/7/15镜像同步3 回复
订阅后,新回复会通过你的通知中心匿名送达。
3 条回复
已经找到原因啦
【 在 matsunatsuri 的大作中提到: 】
: 看到jquery源码解析 extend方法的浅复制这一块: 如果仅仅需要实现浅复制,可以采用类似下面的写法:
: [md]```Javascript
: $ = {
: ...................
感谢回答~因为自己写的测试例子中 访问到的是值类型,所以没有传递引用。。
【 在 biger 的大作中提到: 】
: 这不是实现了吗?object1变了,object2没变。