如何创建未连接到原始对象的对象的副本

时间:2016-05-31 16:50:02

标签: javascript angularjs

我在javascript代码中遇到了一些问题,我称之为bug但我相信它在技术上是一个功能!所以我有一个json实体,我创建一个新的实体并将其与第一个相等。现在,我在第二个上执行的任何更改也会受到原始更改的影响!

这是我创建的简单示例的JSfiddle:https://jsfiddle.net/Lt7aP/2736/

给出代码:

r, w = IO.pipe
pid1 = Process.spawn('iedriverserver', :out => w, :err => [:child, :out])
puts "#{__LINE__}: #{pid1}"
sleep(1)
k = Process.kill('KILL', pid1)
puts "#{__LINE__}: #{k}"
w.close
pid2, status = Process.wait2
puts "#{__LINE__}: #{pid2}, #{status}"
out = r.read
r.close
puts out

不应该a.name是“mike”,只有b.name成为“john”?为什么会发生这两种情况?

1 个答案:

答案 0 :(得分:4)

这绝对不是一个错误。您已通过引用分配到$scope.b。自$scope.b更改后,$scope.a也将更改。

您应该将angular.copy用于不同的引用。

$scope.b = angular.copy($scope.a);

Fiddle here