我还没有理解javascript中方法中的函数定义。 例如在AngularJS中我有代码:
sth.controller('ctrlname', function ($scope, $ionicModal, par3, par4){
//code
});
我也有代码:
var f = function (par5,par6){
return par5 + par6;
}
如果我拨打f(2,3),我会得到结果5.
因此,在控制器和其他类似示例中,我为函数内部的参数或先前存在的变量选择任意名称?
答案 0 :(得分:0)
参数是函数内的新变量,无论它们是否已存在,但我不会使用与包含函数中可用的变量相同的名称以避免混淆。我建议您阅读JavaScript中的闭包,以便更好地理解这一点。这是一个相当不错的读物:http://javascriptissexy.com/understand-javascript-closures-with-ease/。
答案 1 :(得分:0)
你可以像这样在控制器中定义一个函数..
sth.controller('ctrlname', function ($scope, $ionicModal, par3, par4){
//function...
$scope.sum = function(par3,par4){
return par3 + par4 ;
}
});
答案 2 :(得分:0)
正如@MikeFeltman所说,你可以使用任何名称来实现你的功能。参数 的 BUT 强> Angular作为依赖注入的逻辑,它可以使用参数的名称来识别控制器/服务/等依赖的软件。
让我们创建一个取决于B
服务的A
控制器:
angular.module("testModule",[])
.service("A",function(){
//do stuff
})
.controller("B",function(A){
//do other stuff
});
Angular进程器将查看B
构造函数的参数(此处为A
)并尝试查找预期的服务。
但您可以根据需要命名您的参数:
angular.module("testModule",[])
.service("A",function(){
//do stuff
})
.controller("B",["A",function(dontCareAboutVarName){
//do other stuff
}]);
这里的注入器不会查看函数的参数,因为它会找到一个描述依赖关系的数组,最后一项将是控制器构造函数。
请查看有关angular's injector
的文档