Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/365.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
Javascript 这两个角度js控制器之间的区别是什么?_Javascript_Angularjs_Controller - Fatal编程技术网

Javascript 这两个角度js控制器之间的区别是什么?

Javascript 这两个角度js控制器之间的区别是什么?,javascript,angularjs,controller,Javascript,Angularjs,Controller,声明控制器时,我通常会看到以下内容: University.controller('ClassroomController', function($scope){ //do stuff }); 与之相比,它的区别是什么: var classroomController = function ($scope){ //do stuff } University.controller('ClassroomController',['$scope',classroomController]) 教程

声明控制器时,我通常会看到以下内容:

University.controller('ClassroomController', function($scope){
//do stuff
});
与之相比,它的区别是什么:

var classroomController = function ($scope){
//do stuff
}

University.controller('ClassroomController',['$scope',classroomController])

教程似乎没有说明第二种声明的优点。

如果缩小js,第一种语法将中断。例如,Angular将尝试查找
$timeout
,但将查找
a


为了避免这种情况,您必须显式地或内联地声明依赖项

后者在您不需要的任何范围内声明
classroomController
符号。看见它还支持Angular的DI注释,该注释将在缩小后仍然有效。在功能上,它们是identical@Phil谢谢你的回复!但我对你的回答有点困惑,你说后者可能不可取,但在阅读了你共享的链接后,据我所知,后一个声明确保了垃圾收集。嘿@Phil谢谢!我现在明白了,第二个声明也很好。起初我不明白,但经过研究,我现在可以理解你的答案了。非常感谢!