Я прохожу через это blog.Как работает внутренняя фабрика в AngularJS?
Автор выдвигает,
Когда вы используете Factory вы создаете объект, добавлять свойства к нему, то возвращение в тот же объект. Когда вы передадите эту услугу в свой контроллер, те свойства на объекте теперь будет доступен в этом контроллере через вашу фабрику.
Так, согласно моему пониманию, этой линии
заменяется на
в службы, то объект будучи вернулся, когда мы вызываем myFactory().
не выдает Шифрование до этой точки,
Теперь рассмотрим фрагмент кода,
<script type="text/javascript">
var module = angular.module('MyApp', []);
module.factory('VaderService', function() {
var VaderClass = function(padawan) {
this.name = padawan;
this.speak = function() {
return 'Join the dark side ' + this.name;
}
}
return VaderClass;
});
module.controller('StarWarsController', function($scope, VaderService) {
var luke = new VaderService('luke');
$scope.luke = luke.speak();
});
</script>
</head>
<body ng-app="MyApp">
<table ng-controller="StarWarsController">
<tbody>
<tr><td>{{luke}}</td></tr>
</tbody>
</table>
</body>
печатает как,
Join the dark side luke
я не в состоянии понять, что происходит здесь, с этой линией
var luke = new VaderService('luke');
Мы создали экземпляр завода VaderService ('Лука') передавая строку luke
в качестве параметра, но удивительно, что аргументы не определены в
module.factory('VaderService', function() {...
Во-вторых, функция возвращается, т.е. VaderClass(), а не objec t. (Я очень хорошо знаю, что функции в javascript являются первоклассными объектами).
Как строка luke
получает передается аргумент в VaderClass функции?
Но вы возвращаете эту «var VaderClass = function (padawan)», и это то, что применяется. Внешняя функция используется как корпус. – dmitry