gpt4 book ai didi

javascript - 奇怪的 angularJs 变量行为

转载 作者:行者123 更新时间:2023-11-30 17:07:50 24 4
gpt4 key购买 nike

请向我解释这种行为。我已经贴标了 2 个变量。

$scope.data = {'value' : 123};
$scope.v1 = $scope.data;

现在如果我改变值

$scope.data.value = 2;

并尝试打印

alert('old value is '+$scope.v1.value);

它给我的输出为 2,而我认为它应该给我的值为 123。请告诉我这是否与 Java 中一个变量具有不同的实例并且一个变量的变化反射(reflect)在另一个变量中的行为相同?

最佳答案

正如您所猜测的那样,当您将 $scope.data 分配给 $scope.v1 时并没有创建新对象。您只是将 $scope.v1“指向”$scope.data,这意味着您对 $scope.data 所做的任何更改也将反射(reflect)在 $scope.v1 中。

如果你想拥有不同的元素,你应该制作一个对象的副本。看angular.copy

关于javascript - 奇怪的 angularJs 变量行为,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27605423/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com