В соответствии с угловыми значениями js docsФункция углового Js возвращает функцию/объект?
сервис (имя, конструктор); имя: name constructor: класс инъекции (функция конструктора), который будет создан.
Internally :
{
$get: function() {
return $injector.instantiate(constructor);
}
}
Это можно сделать вывод из угловых Документов, что служба обрабатывает 2-й аргумент, передаваемый в качестве конструктора и поставщика создает экземпляр через $ инжектор и возвращается через $ получить. Поэтому всякий раз, когда мы вводим услугу в любую из наших функций модуля (контроллеры, директивы и т. Д.), Он должен вернуть вновь созданный объект, который является Singleton offcourse.
Теперь проблема возникает, если я определяю свое обслуживание такими способами.
1. _app_user_content.service("MyService" , function(){
this.Message = "Greetings!";
}); //returns object when injected.
2. _app_user_content.service("MyService" , function(){
this.Message = "Greetings!";
return "123"
}); // returns object when injected.
3. _app_user_content.service("MyService" , function(){
this.Message = "Greetings!";
return function(){}
}); //returns function(){} when injected. Doesnot return object
Почему третий случай возвращает функцию?
Ваш ответ правильно указывает на синтаксические основы javascript. Дальнейшее исследование, я могу заключить, что если функция возвращает примитивы javascript, она возвращает вновь созданный объект. Однако, если оператор return включает в себя не примитивные типы, он просто присваивает оператор return и не создает объект. – ajaykumar