AngularJS — 从控制器显式返回一个值

AngularJS — Explicitly returning a value from a controller

前几天我 运行 进入了下面的代码块,我试图弄清楚为什么作者可能选择 return init(); 而不是像

这样的事情
$scope.init = function() {...};

并用 ng-click 或其他方式调用它。 这是代码:

myApp.controller("PlaylistCtrl", [
  "$scope", "tracksService", function($scope, tracksService) {
    var init;
    init = function() {
      $scope.addTrack("Jay-Z - 99 Problems");
      return $scope.tracks = $scope.getTracks();
    };
    $scope.getTracks = function() {
      return tracksService.tracks();
    };
    $scope.addTrack = function(trackTitle) {
      if (trackTitle !== "") {
        return tracksService.addTrack(trackTitle);
      }
    };
    return init();
  }
]);

所以现在的问题是:从控制器返回值的目的是什么?它利用了哪些附加功能?这是否导致 init() 一旦启动控制器就成为 运行 ?如果不是,这里的具体目的是什么?任何帮助表示赞赏。谢谢。

它没有具体含义,删除 return 也不会改变任何内容。

如果你看看其他函数,开发者似乎有从每个函数中 return 的习惯,即使在没有必要的时候也是如此。

这可能只是一种习惯。在某些情况下,它可以帮助开发人员确保这是初始化块的末尾,将函数声明放在下面,例如在这个小示例中:

// Initialization
var foo = 'bar';
doFoo();
doBar();

return; // <- end of declarative block

// Methods
function doFoo() { ... }
function doBar() { ... }