慎用lodash的cloneDeep函数

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

原文地址:https://www.cnblogs.com/axel10/p/9536898.html

时间: 2024-10-21 21:20:26

慎用lodash的cloneDeep函数的相关文章

nodejs lodash的一些函数

1   _.compact用法   _.compact([0, 1, false, 2, '', 3,'mm']); var test = _.compact([-1,0, 1, false, 2, '', 3,'jj']); console.log(test); ----1,1,2,3,jj//输出 没有 0 false 空格 2_.different用法 var test = _.difference([1, 2, 3, 4, 5], [5, 2, 10]); console.log(tes

lodash用法系列(3),使用函数

Lodash用来操作对象和集合,比Underscore拥有更多的功能和更好的性能. 官网:https://lodash.com/引用:<script src="//cdnjs.cloudflare.com/ajax/libs/lodash.js/2.4.1/lodash.min.js"></script>安装:npm install lodash 首先通过npm安装lodash:npm i --save lodash 在js文件中引用lodash:var _ =

JavaScript工具库之Lodash

你还在为JavaScript中的数据转换.匹配.查找等烦恼吗?一堆看似简单的foreach,却冗长无趣,可仍还在不停的repeat it!也许你已经用上了Underscore.js,不错,你已经进步很大一步了.然而今天我希望你能更进一步,利用lodash替换掉 Underscore. lodash一开始是Underscore.js库的一个fork,因为和其他(Underscore.js的)贡献者意见相左.John- David Dalton的最初目标,是提供更多“一致的跨浏览器行为……,并改善性

JS工具库之Lodash

破狼 JavaScript工具库之Lodash 2015-04-11 16:08 by 破狼, 235 阅读, 2 评论, 收藏, 编辑 你还在为JavaScript中的数据转换.匹配.查找等烦恼吗?一堆看似简单的foreach,却冗长无趣,可仍还在不停的repeat it!也许你已经用上了Underscore.js,不错,你已经进步很大一步了.然而今天我希望你能更进一步,利用lodash替换掉Underscore. lodash一开始是Underscore.js库的一个fork,因为和其他(U

lodash

什么是lodash? lodash是一个javascript库,也是Node JS的常用模块,可以用 npm install -g lodash 命令安装. lodash可以用来做什么? 软件产品大都是根据广泛的需求应运而生的,很少有东西先做出来,然后再看看它可以应用到哪些地方.原生的javascript在功能实现上面更原子化,很多常用功能没有形成模块.lodash做了这些事情.比如,合并数组: _.union([1,2,3],[2,3,4]); //result: [1,2,3,4] JQue

Lodash,npm包仓库中依赖最多的库

简介 lodash,是具有一致接口.模块化.高性能等特性的 JavaScript 工具库.提供了大量的工具函数,也正是因为这个原因,使得lodash成为了npm包库中被其它库依赖最多的库. 就像jQuery在全部函数前加全局的$一样,lodash使用全局的_来提供对工具的快速访问. var _ = require('lodash'); 提高开发者效率 //copy一个JS对象 //原生方法 var a = {a:1,b:2,c:3}; var b = {}; for(var key in a)

javascript柯里化及组合函数~

大家是不是看我上篇博文有点蒙.用的的curry和compose是什么鬼,怎么那么神奇.上篇博文也是主要用到了这两个函数.那今天我们来聊一下curry和compose,这两个东西是函数式编程很重要的东西,基本每个稍微复杂点的例子都要涉及这两个函数.什么是curry呢?---函数柯里化.就是这个东西了.举一个简单的例子. var _console=curry(function(x){ console.log(x); }) _console("hello"); //hello 其实就这个作用

lodash源码分析之去重--uniq方法

lodash.js包是node开发中常用的js工具包,里面有许多实用的方法,今天分析常用的一个去重方法---uniq 用法 _.uniq([2, 1, 2]) // => [2, 1] 源码包 // uniq.js import baseUniq from './.internal/baseUniq.js' function uniq(array) { return (array != null && array.length) ? baseUniq(array) : [] } ex

构建自己的AngularJS - 作用域和Digest(二)

作用域 第一章 作用域和Digest(二) 放弃一个不稳定的Digest 在我们当前的实现中有一个明显的遗漏:如果发生了两个监控函数互相监控对方的变化的情况会如何?也就是,万一状态永远不能稳定呢?就像下面的测试案例展示的情况: test/scope_spec.js it("gives up on the watchers after 10 iterations", function(){ scope.counterA = 0; scope.counterB = 0; scope.$wa