我對JavaScript很新穎(剛剛完成了Eloquent Javascript一書),目前我正在閱讀O'Reilly的AngularJS。從這本書中得到這段小小的代碼片段讓我瘋狂了好幾個小時,並讓我陷入了兔子洞,因爲我認爲自己在設置我的環境時陷入了困境。 AngularJS書籍和我輸入的代碼提供的代碼唯一的區別是我在TextController函數的「$ scope」中省略了'$'。把'$'放回允許代碼工作。
這是我最初拋棄它的推理: 哦,'$ scope'只是該函數本地的一個變量名。像任何其他編程語言(如Java或C++)一樣,因爲此參數只是一個局部變量,所以我可以將其命名爲任何我想要的名稱,因爲傳遞給該函數的任何參數都只能通過值傳遞。
請糾正我的推理,並解釋爲什麼參數的名稱必須是「$ scope」。
<!doctype html>
<html ng-app>
<body ng-controller="TextController">
<p>{{someText}}</p>
<script src="angular.min.js"></script>
<script>
function TextController($scope) {
$scope.someText = 'You have started your journey.';
}
</script>
</body>
</html>
依賴注入 – Jess
依賴注入與注入基於參數名稱的事實。 (許多人往往忘記提及最後的細節。) – Johan