参数内部的 Javascript 函数?

标签 javascript angularjs function parameters arguments

我有 C/C#/Java 和 PHP 背景,所以我习惯了那些编码标准,其中函数是使用 function(parameters) { ... return x}

但最近我一直在学习一些 JS 库,比如 Angular/Node,并遇到了函数(或者可能没有?)在参数中有另一个函数,就像这样:

app.controller('MainController', ['$scope', 'forecast', function($scope,     forecast) {
forecast.success(function(data) {
$scope.fiveDay = data;
});
}]);

app.factory('forecast', ['$http', function($http) { 
return $http.get('https://s3.amazonaws.com/codecademy-    content/courses/ltp4/forecast-api/forecast.json') 
        .success(function(data) { 
          return data; 
        }) 
        .error(function(err) { 
          return err; 
        }); 
 }]);

这让我很困惑,并且违背了我对函数的了解。此约定仅用于脚本语言吗?我好像他们走了

function(parameter, function(parameter) { do something; }); 

谁能解释为什么要使用它,或者它是否做了正常功能之外的任何事情?

谢谢。

最佳答案

在 Javascript 中,一个变量可以返回一个函数,这个函数可以返回另一个函数,几乎无穷无尽。

例如:

var myFunction = function() {
    return getAnswer();
}

var getAnswer = function() {
    return "Hello world!";
}

console.log(myFunction);会回来的

var myFunction = function() { return getAnswer(); }

和 console.log(myFunction());会回来的

"Hello world!"

所以 App.controller 是一个变量,它是应用程序对象的一部分,但它是一个函数,因此您要传入参数,其中一些参数可以是一个函数。

https://jsfiddle.net/Lu46sf2v/2/

关于参数内部的 Javascript 函数?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34602352/

相关文章:

javascript - 在不相关的事件之后重新绑定(bind) .toggle() 事件?

javascript - 在 d3 map 中选择多个路径元素

javascript - 查找孤立作用域以减少内存泄漏

更改 View 后,AngularJS 不会滚动到顶部

javascript - 如何在参数之类的函数中使用函数调用者变量?

javascript - jQuery addClass getDay()

Javascript - 对对象和数组使用条件

angularjs - 如何使 Angular 形式只读并使用编辑按钮使其可编辑?

c++ - if 语句表达式调用函数,需要测试是否为真

linux - BASH:定义变量中的变量?