2016-05-31 35 views
0

我在我的JavaScript代码中面对某些东西,我称之为错误,但我相信它在技术上是一个功能!所以我有一个json实体,我创建一个新实体并将其均衡到第一个实体。现在,我在第二个上执行的任何更改都会受到原始上的影响!如何创建未连接到原始对象的对象的副本

这里是我创建了简单的例子的jsfiddle:https://jsfiddle.net/Lt7aP/2736/

给予代码:

$scope.a = { 
    name: "mike", 
    age: 10 
}; 

$scope.b = $scope.a; 

$scope.b.name = "john"; 

不应a.name是 “麦克”,只有b.name成为 “约翰” ?为什么会发生在他们两人身上?

+1

https://docs.angularjs.org/api/ng/function/angular.copy –

+1

你没有 “JSON实体”,顺便说一句。你有一个对象,简单明了。 –

回答

4

这绝对不是一个错误。您已将其分配给$scope.b作为参考。由于,$scope.b的变化,所以会$scope.a

对于不同的参考,您应该使用angular.copy

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

Fiddle here

相关问题