有角度的文档说它支持这两种形式的DI设置(加上另一种形式,但对于这个问题没有必要):
与
var app = angular.module('MyApp', []);
你可以
1. app.controller('MainCtrl', function ($scope, $http) { } );
或
2. app.controller('MainCtrl', ['$scope', '$http', function($scope, $http) { } ]);
我有2个问题。
首先,我假设他们可以通过执行function.toString并解析函数的字符串来做第一种形式的DI,以了解$ scope和$ http是必需的依赖项。这是正确的假设吗?
其次,在我看来,如果你使用数组形式(我显示第二个),那么Angular将不必进行字符串解析(假设这是正在发生的事情),并且会增加性能(特别取决于它解析的控制器数量)。但我从来没有听到任何人谈论它如何获得性能。是吗?
我不确定我的任何假设是否正确,或者即使性能增益值得我发布这些问题所花费的努力,但我希望得到一些有关它如何起作用的详细信息。有人比我更熟悉这个来源。
编辑: The Angular docs请谈谈如何使用toString。这回答了我的一个问题。
答案 0 :(得分:0)
据我所知,将参数作为字符串数组写入的唯一原因是为了防止任何可能导致在缩小后陷入依赖注入的问题。