按照角度js docsAngular Js服務返回函數/對象?
service(name,constructor); name:name 構造函數:將被實例化的注入類(構造函數)。
Internally :
{
$get: function() {
return $injector.instantiate(constructor);
}
}
它可以從該服務將其視爲一個構造函數和供應商通過了 第二個參數的角度文檔可以得出結論,通過$噴油器並返回到$創建一個實例 得到。因此,無論何時我們將在我們的任何模塊功能(控制器,指令 等)中注入 服務,它都應返回新創建的對象,即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