慎用lodash的cloneDeep函数

摘要:
lodash的cloneDeep函数可以轻松复制对象,但一旦复制了一些复杂的对象,可能会报告错误。一般来说,复杂对象具有内置的复制方法,这比lodash的cloneDeep安全得多。当遇到相对简单的对象时,我们应该直接调用clone方法,而不是cloneDeep,这样既可以保证性能又可以减少性能损失。

lodash的cloneDeep函数能够很方便的拷贝对象,但是一旦拷贝一些很复杂的对象就有可能报错。比如用cloneDeep克隆一个vue实例,就有可能包key.charAt is not a Function的错。(正确的拷贝方法是Vue.extend())。一般来说复杂的对象都会内置拷贝方法,使用内置的方法拷贝会比lodash的cloneDeep要安全得多。遇到比较简单的对象我们们应该直接调用clone方法而不是cloneDeep(或者JSON.parse(JSON.stringify(obj))),这样既保险也可以减少性能损耗。

免责声明:文章转载自《慎用lodash的cloneDeep函数》仅用于学习参考。如对内容有疑问,请及时联系本站处理。

上篇Python爬取上交所一年大盘数据NAT类型判断下篇

宿迁高防,2C2G15M,22元/月;香港BGP,2C5G5M,25元/月 雨云优惠码:MjYwNzM=

相关文章

Java中的深拷贝(深复制)和浅拷贝(浅复制)

深拷贝(深复制)和浅拷贝(浅复制)是两个比较通用的概念,尤其在C++语言中,若不弄懂,则会在delete的时候出问题,但是我们在这幸好用的是Java。虽然java自动管理对象的回收,但对于深拷贝(深复制)和浅拷贝(浅复制),我们还是要给予足够的重视,因为有时这两个概念往往会给我们带来不小的困惑。 浅拷贝是指拷贝对象时仅仅拷贝对象本身(包括对象中的基本变量)...

ADB常用命令(一)

转自:https://blog.csdn.net/qq_26552691/article/details/81348222 一.操作前请确认电脑上已配置好ADB环境。可在CMD命令行输入adb,如果出现如下提示,说明已配置好。 二.下面,我们可以进行一些ADB常用命令的操作。 1.在命令行输入:adb start-server 或者adb shell,来启...

Java原型模式之浅拷贝-深拷贝

一、是什么?         浅拷贝:对值类型的成员变量进行值的复制,对引用类型的成员变量仅仅复制引用,不复制引用的对象          深拷贝:对值类型的成员变量进行值的复制,对引用类型的成员变量也进行引用对象的复制          内部机制:       (1)关于Object类的clone方法          默认实现为“浅拷贝”,重写O...

Druid 集群方式部署 —— 启动服务

启动 Master 服务器 拷贝 Druid 的分发包和你修改过的配置到 Master 服务器上。 如果你已经在你的本地计算机上修改了配置,你可以使用 rsync 来进行拷贝。 rsync -az apache-druid-apache-druid-0.21.1/ MASTER_SERVER:apache-druid-apache-druid-0.21....

Linux下使用VSCode开发OpenCV程序

在Linux下使用VSCode开发OpenCV程序,并使用cmake编译 创建项目 打开vscode,选择File->Open Folder VSCode配置 这里需要配置launch.json, tasks.json, c_cpp_properties.json三个文件; launch.json配置 点击左侧Debug, 选择Add Configu...

【VS开发】【C/C++开发】memcpy和memmove的区别

memcpy和memmove()都是C语言中的库函数,在头文件string.h中,作用是拷贝一定长度的内存的内容,原型分别如下: void *memcpy(void *dst, const void *src, size_t count); void *memmove(void *dst, const void *src, size_t count);...