问答详情
源自:2-8 仿栈与队列的操作

copy存在的意义

copy = options[name];

//覆盖拷贝

target[name] = copy;

为什么不能直接写成 target[name]=options[name]

提问者:杰枫 2016-08-01 21:05

个回答

  • JSAL
    2016-08-02 01:08:57
    已采纳

    以下是我的理解,不知道对不对

    貌似是深浅拷贝的问题

    copy = options[name]其实新建了一个与 options[name]相同内容的对象,这样使用target[name]时候就不会影响到options[name]的值,是深拷贝;

    target[name]=options[name]的话则是浅拷贝,target[name]其实是options[name]的引用,target[name]改变,options[name]也会随着改变。

  • 慕雪5194257
    2016-08-12 10:58:32

    和target[name] = options[name]没有区别,这里的copy没任何作用。

    估计老师是参考jquery源代码写的,但源代码中copy变量还做了其他操作。