Javascript 如何创建未连接到原始对象的对象的副本
我在javascript代码中遇到了一些问题,我称之为bug,但我相信这在技术上是一个特性!所以我有一个json实体,我创建了一个新实体,并将其与第一个实体相等。现在,我在第二个上执行的任何更改都将影响到原始的更改 下面是我创建的一个简单示例: 鉴于代码:Javascript 如何创建未连接到原始对象的对象的副本,javascript,angularjs,Javascript,Angularjs,我在javascript代码中遇到了一些问题,我称之为bug,但我相信这在技术上是一个特性!所以我有一个json实体,我创建了一个新实体,并将其与第一个实体相等。现在,我在第二个上执行的任何更改都将影响到原始的更改 下面是我创建的一个简单示例: 鉴于代码: $scope.a = { name: "mike", age: 10 }; $scope.b = $scope.a; $scope.b.name = "john"; a.的名字不应该是“迈克”而只有b.的名字应该是“约翰
$scope.a = {
name: "mike",
age: 10
};
$scope.b = $scope.a;
$scope.b.name = "john";
a.的名字不应该是“迈克”而只有b.的名字应该是“约翰”吗?为什么这两个都会发生?这绝对不是一个bug。您已通过引用分配给
$scope.b
。由于,$scope.b
发生了变化,因此,$scope.a
也将发生变化
对于不同的参考,应使用angular.copy
$scope.b = angular.copy($scope.a);
这绝对不是一个bug。您已通过引用分配给
$scope.b
。由于,$scope.b
发生了变化,因此,$scope.a
也将发生变化
对于不同的参考,应使用angular.copy
$scope.b = angular.copy($scope.a);
顺便说一句,您没有“json实体”。你有一个简单明了的对象,顺便说一句,你没有“json实体”。你有一个简单明了的对象。