javascript - underscore.js只支持潜拷贝吗?
迷茫
迷茫 2017-04-10 15:37:21
[JavaScript讨论组]
var src = {
  src: 'SRC',
  test: {
    name: 'test',
    val: 0
  }
};

var dist1 = _.extend({ dist: 1 }, src);
dist1.test.name = 'test1';
dist1.test.val = 1;
console.log('src', src);
console.log('dest1', dist1);

var dist2 = _.extend({}, src);
dist2.dist = 2;
dist2.test.name = 'test2';
console.log('src', src);
console.log('dest2', dist2);

var dist3 = _.clone(src);
dist3.dist = 3;
console.log('src', src);
console.log('dest3', dist3);

运行这段代码发现,test其实是同一个引用
这样不是一不小心就会产生bug?

迷茫
迷茫

业精于勤,荒于嬉;行成于思,毁于随。

全部回复(1)
天蓬老师

试试 Lodash,兼容underscore,并且优化了性能,同时对api进行了扩展
里面就有 _.clone() _.cloneDeep()

_.clone(value, [isDeep], [customizer], [thisArg])
_.cloneDeep(value, [customizer], [thisArg])

详见

https://lodash.com/docs#clone
https://lodash.com/docs#cloneDeep

热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板
关于我们 免责申明 意见反馈 讲师合作 广告合作 最新更新 English
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送
PHP中文网APP
随时随地碎片化学习
PHP中文网抖音号
发现有趣的

Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号