Angular を初めて使用するため、少し混乱しています。例として次のコントローラー関数を取り上げます。
リーリーこれは関数宣言です。$scope は仮パラメータであるべきですよね?ただし、$scope を s などの別の識別子に変更しても機能しません。 $scope が、hello 関数が呼び出されたときに渡される実際のパラメータであることがわかります。しかし、これら 3 行のコードは関数宣言であるのに、実際のパラメータが渡されるのはなぜでしょうか?
これは通常の関数宣言ではないことにおそらく気づきましたが、おそらく Angular のコントローラー関数バインディング メカニズムと関係があるのではないでしょうか?正確にはどのように見えますか?
この種のパラメーターの受け渡しによる依存関係の取得は、AngularJS の主要な機能であり、依存関係注入の現れの 1 つです。
しかし、パラメーターを宣言するだけで依存関係を取得できるのはなぜでしょうか?
AngularJS は
$injector
を使用して、$injector
管理依赖的查询与加载,比如如果没有显示声明,
つまり、次のように宣言することもできます:🎜 リーリー$injector
などの依存クエリと読み込みを管理します リーリー 明示的な宣言がない場合、$injector
はパラメータ名に基づいて 依存関係を推測します現時点では、パラメータの順序は意味がありません。
まあ、これは単に関数宣言が書かれているだけで、仮パラメータの名前が重要かどうかは完全に読み手によって決まります。ECMAScript 標準パーサーはそれが重要であるとは考えていません (おそらく) が、Angular は js を採用しました。そして「js」パーサーを書きました。 。 。このように、関数パラメータの名前は重要です
http://note.sdo.com/u/635412003927148913/n/s6cBN~lcIHwG4M1-Y000LW