'use strict';
(function(){
function myFactory(){
var model = {};
function viewModelManager(){
return {
getInstance : function(){
return model;
}
}
return viewModelManager;
}
}
angular.module('main').factory('viewModelFactory',myFactory);
}());
在參考上面的代碼片段,我想知道以下兩個調用之間的區別:AngularJS廠可返回兩個不同的實例
new viewModelFatory();
和
viewModelFactory();
兩個似乎是返回viewModelManager函數返回的對象。那麼使用operator new的優點是什麼?
另外,我的理解正確的關於上面的代碼片段:
1)viewModelFatory將只有一個單一的實例,只要我們注入到多個控制器它將引用該實例。
2)viewModelFactory可以用來創建多個有狀態的實例,因爲我在viewModelManager函數內部創建了這些實例變量?
3)每當我調用new viewModelFatory()(或viewModelFactory()),它會創建一個viewModelManager函數的新實例?
它不回答我的問題 –
如果我在不使用它的情況下獲得相同的結果,那麼使用new運算符有什麼優勢? –
我每次調用viewModelFatory()或new viewModelFatory()時都會返回viewModelManager實例,但它們將始終不同。它是否正確?如果是的話,我們應該使用什麼,以及另一個優勢是什麼? –