Angularjs $scope是一个普通函数参数还是一个特殊的参数?

Angularjs $scope是一个普通函数参数还是一个特殊的参数?,angularjs,Angularjs,我完全是一个有棱角的初学者。我在看w3schools教程: 我试图改变 app.controller('myCtrl',函数($scope){ $scope.firstName=“John”; $scope.lastName=“Doe”; });您可以更改参数的名称,但需要使用以下语法表示法: app.controller('myCtrl', function(a) { a.firstName = "John"; a.lastName = "Doe"; }); app.co

我完全是一个有棱角的初学者。我在看w3schools教程:

我试图改变

app.controller('myCtrl',函数($scope){
$scope.firstName=“John”;
$scope.lastName=“Doe”;

});您可以更改参数的名称,但需要使用以下语法表示法:

app.controller('myCtrl', function(a) {
    a.firstName = "John";
    a.lastName = "Doe";
});

app.controller('myCtrl', ['$scope', function(a) {
    a.firstName = "John";
    a.lastName = "Doe";
}]);

请看一看与此问题非常相似的

:是的,
$scope
是一个特殊参数,至少在开始时,它是Angular的主要构建块之一。我还建议不要向学校学习。一个好的起点是我理解作用域的目的是什么,我不明白的是Javascript如何允许函数参数出现这种奇怪的行为?Angular检查参数名称以确定为每个参数注入什么。因此,更改其名称意味着Angular不再知道要注入什么。查看@tommy的答案,了解如何手动注入依赖项。因此,Angular对这些方法进行了一些反思,这就是为什么参数名很重要,对吗?它使用第一个参数作为函数参数的真实名称。这是必要的,因为如果没有这种语法,缩小过程将破坏应用程序。