我在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”?为什么会发生这两种情况?
答案 0 :(得分:4)
这绝对不是一个错误。您已通过引用分配到$scope.b
。自$scope.b
更改后,$scope.a
也将更改。
您应该将angular.copy
用于不同的引用。
$scope.b = angular.copy($scope.a);