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在这种情况下工作得很好。