2015-12-24 62 views
0

工廠可以返回基元和對象。那麼使用服務返回對象的原因是什麼(類型友好的注入)?爲什麼AngularJS服務只能返回對象,當工廠可以返回基元和對象?

// factory 
app.factory('factoryService',function(){ 
    var returnObj = function() { 
    }; 

    return new returnObj(); 
}) 

// service 
app.service('service',function(){ 
    return this; 
}); 
+0

你會做什麼(或者已經做過!)注意到'工廠'實際上幾乎是通用的,並且可以很容易地完成與'常量','服務',...完全相同的事情。 – bardzusny

+1

@bardzusny它可以作爲價值和服務的替代品,但不是一成不變的。常量在配置階段可用。由工廠創建的服務不是。 –

回答

0

原因是商品。如果你有一個構造函數,你可以將它傳遞給service(),而不必創建一個調用構造函數並返回創建對象的工廠。

順便說一句,factory()是另一種商品,避免創建提供商返回服務的$get()函數。它只是縮短了代碼。