Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/369.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript angular.copy()与$.extend(true,{},obj)_Javascript_Jquery_Angularjs - Fatal编程技术网

Javascript angular.copy()与$.extend(true,{},obj)

Javascript angular.copy()与$.extend(true,{},obj),javascript,jquery,angularjs,Javascript,Jquery,Angularjs,只是想知道angular.copy()和$jquery.extend(true,{},obj)之间是否有任何区别 根据和,两者似乎都在进行深度克隆,但jquery的方法似乎要快得多 有什么建议吗?jQuery的$.extend()允许您有条件地向扩展对象添加键值对 var sourceObj = { foo: 'bar' }; var destObj = $.extend(sourceObj, { added: 'addedProp'}); destObj等于: {foo: "bar", ad

只是想知道
angular.copy()
$jquery.extend(true,{},obj)
之间是否有任何区别

根据和,两者似乎都在进行深度克隆,但jquery的方法似乎要快得多

有什么建议吗?

jQuery的
$.extend()
允许您有条件地向扩展对象添加键值对

var sourceObj = { foo: 'bar' };
var destObj = $.extend(sourceObj, { added: 'addedProp'});
destObj等于:

{foo: "bar", added: "addedProp"}

我最近发现的另一个不同点是,
angular.copy
将忽略名为
$$hashKey
的属性,angular在内部将该属性添加到
ng repeat

中的对象中。您是否阅读了代码?这似乎表明两者都在做深层次的模仿丹尼尔,你能说得更具体一点吗?你不应该考虑比较两者。什么是angular,什么是jquery——一个框架和一个库。这就是为什么在angularjs控制器或服务中,您不会弄乱jquery。我做了一个快速性能测试,jquery的$.extend似乎比angular.copy快得多,这让我认为理想情况下,我们应该始终使用$.extend。为什么会有人使用angular.copy呢?如果你已经在使用jQuery,而你不只是因为
$.extend
更快而添加jQuery,那么我看不出为什么不选择
$.extend
而不是
angular.copy
。我最近遇到了这个问题,发现angular.copy会冻结整个应用程序(Windows Phone)如果对象太大(例如7.5 MB),$.extend在这种情况下工作得很好。