连续多次修改范围变量被认为是一种不好的做法吗?

时间:2017-04-28 10:29:11

标签: angularjs

例如,我们有这样的代码:

function(result) {
 $scope.data = result.data;
 $scope.data[0] = someData;
 $scope.data.forEach(...some more changes...)
}

修改范围变量会比修改临时公共变量慢吗,如下面的代码所示?

function(result) {
 var data = result.data;
 data[0] = someData;
 data.forEach(...some more changes...)
 $scope.data = data;
}

2 个答案:

答案 0 :(得分:1)

如果您担心触发虚假的临时状态变化,那就不会发生。状态更改仅应用于事件循环的“滴答”之间。所以第一个例子很好。

样式方面,如果我不止一次引用某个嵌套对象,我可能会使用局部变量。

也不是最终的$scope.data = data是多余的,因为你没有将data分配给任何新的东西:它仍然指向它在开头的同一个对象,它仍然附着在范围及其状态的任何修改也将在范围内显示。

答案 1 :(得分:1)

仅相同但$scope通过angularjs观看,因此在更改值$scope.data[0] = someData;时,手表次数(前5次)会增加。