有人可以解释angular.copy()和JSON.parse(JSON.stringify())之间的区别吗?有吗?你会建议使用什么? angular.fromJson(angular.toJson())是否与JSON.parse(JSON.stringify())相同?
请注意,我已经为JSON.parse(JSON.stringify())和How do I correctly clone a JavaScript object?读取angular.copy() reference for angular.copy()。
答案 0 :(得分:10)
JSON.parse(JSON.stringify())
不会复制的内容:
Date
(它将被复制,但不会被Date
)undefined
angular.fromJson(angular.toJson())
基本相同,只是angular.toJson()
省略了Angular内部使用的属性(以$$
开头的属性)。
答案 1 :(得分:7)
我可以非常具体地回答你的问题,指出他们以不同方式对待undefined
:
> JSON.parse(JSON.stringify(undefined))
SyntaxError: Unexpected token u
更常见的是我更喜欢angular.copy:
如果说,他们会以同样的方式处理更多深奥的数据,例如功能吗?我无法回答这个问题,但在决定之前我会研究(或等待另一个答案)。