杰枫
2016-08-01 21:05
copy = options[name];
//覆盖拷贝
target[name] = copy;
为什么不能直接写成 target[name]=options[name]
以下是我的理解,不知道对不对
貌似是深浅拷贝的问题
copy = options[name]其实新建了一个与 options[name]相同内容的对象,这样使用target[name]时候就不会影响到options[name]的值,是深拷贝;
target[name]=options[name]的话则是浅拷贝,target[name]其实是options[name]的引用,target[name]改变,options[name]也会随着改变。
和target[name] = options[name]没有区别,这里的copy没任何作用。
估计老师是参考jquery源代码写的,但源代码中copy变量还做了其他操作。
jQuery源码解析(架构与依赖模块)
84047 学习 · 280 问题
相似问题