Как создать копию объекта, который не связан с оригиналом

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 быть "mike" и только b.name станет "john"? почему это происходит с обоими из них?

  • 1
    docs.angularjs.org/api/ng/function/angular.copy
  • 1
    Кстати, у вас нет «сущности json». У вас есть объект, простой и понятный.
Теги:

1 ответ

4
Лучший ответ

Это определенно не ошибка. Вы привязаны к $scope.b по ссылке. Так как $scope.b, то будет $scope.a.

Вы должны использовать angular.copy для разных ссылок.

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

Скриншот здесь

Ещё вопросы

Сообщество Overcoder
Наверх
Меню