javascript方法中的参数

时间:2016-04-20 13:22:44

标签: javascript angularjs node.js

我还没有理解javascript中方法中的函数定义。 例如在AngularJS中我有代码:

sth.controller('ctrlname', function ($scope, $ionicModal, par3, par4){
       //code
});

我也有代码:

var f = function (par5,par6){
     return par5 + par6;
}

如果我拨打f(2,3),我会得到结果5.

因此,在控制器和其他类似示例中,我为函数内部的参数或先前存在的变量选择任意名称?

3 个答案:

答案 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

的文档