Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/angularjs/20.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Angularjs 连续多次修改范围变量是否被认为是一种不好的做法?_Angularjs - Fatal编程技术网

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

Angularjs 连续多次修改范围变量是否被认为是一种不好的做法?,angularjs,Angularjs,例如,我们有这样一个代码: function(result) { $scope.data = result.data; $scope.data[0] = someData; $scope.data.forEach(...some more changes...) } 修改scope变量会比修改temp公共变量慢吗,如下面的代码所示 function(result) { var data = result.data; data[0] = someData; data.forEach(

例如,我们有这样一个代码:

function(result) {
 $scope.data = result.data;
 $scope.data[0] = someData;
 $scope.data.forEach(...some more changes...)
}
修改scope变量会比修改temp公共变量慢吗,如下面的代码所示

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

如果您担心触发虚假的临时状态更改,那么这种情况是不会发生的。状态更改仅在事件循环的“刻度”之间应用。所以第一个例子很好

就风格而言,如果我多次引用某个嵌套对象,我可能会使用局部变量


也不是说最后的
$scope.data=data
是多余的,因为您没有将
数据
分配给任何新的对象:它仍然指向与开始时相同的对象,它仍然附加到作用域,并且对其状态的任何修改也将在作用域中可见。

如果您担心触发虚假的临时状态更改,则不会发生这种情况。状态更改仅在事件循环的“刻度”之间应用。所以第一个例子很好

就风格而言,如果我多次引用某个嵌套对象,我可能会使用局部变量


也不是说最后的
$scope.data=data
是多余的,因为您没有将
数据
分配给任何新的对象:它仍然指向与开始时相同的对象,一个仍然附加到作用域,对其状态的任何修改也将在作用域中可见。

仅相同,但
$scope
angularjs观察,因此观察次数计数(例如5次)增加,同时更改如下值
$scope.data[0]=someData

仅相同,但
$scope
angularjs观察次数(例如5次)增加,同时更改如下值
$scope.data[0]=someData

从技术上讲,当您对同一对象进行操作时,这是相同的事情(除了创建局部变量的浪费,在任何情况下都是无关紧要的)。从技术上讲,这是相同的事情(除了创建局部变量的浪费,在任何情况下都是无关紧要的),当您在同一对象上操作时。可能的重复您确定手表将由分配本身触发吗?这不会被推迟到方法返回(这样五个赋值仍然只会触发一个更新)吗?我说的示例计算了五次。$scope.data[0]=someData;他正在分配新数据,因此手表将正确触发。您确定手表将通过分配本身触发吗?这不会被推迟到方法返回(这样五个赋值仍然只会触发一个更新)吗?我说的示例计算了五次。$scope.data[0]=someData;他正在分配新数据,以便手表能正确触发。