-1
私が作成したjavascriptクラスからインスタンス/オブジェクトを作成する際に問題があります。コードを確認して、コードの最後にある出力を確認してください。javascriptシングルトンパターン - 異なるインスタンスを作成する際の問題
ありがとうございます... よろしくお願いします。
//MARKER MANAGER CLASS
var MarkerManager = (function(){
var arr = [];
var arrName = [];
var counter = 0;
var MarkerManager = function (args){
arr = [];
arrName = [];
counter = 0;
return {
addMarker: addMarker,
getMarker: getMarker,
getIndex: getIndex
}
};
function getIndex(){
return counter;
}
function addMarker(marker){
arrName[counter] = marker.name;
arr[counter] = marker;
counter++;
}
function getMarkerNameList(){
return arrName;
}
function getMarker(li_name){
var markerIndex = arrName.indexOf(li_name);
return arr[markerIndex];
}
/*var instance;
var _static = {
name: 'manager',
getInstance: function (args){
if(instance === undefined){
instance = new MarkerManager(args)
}
return instance;
}
};
return _static;
*/
return function (args){
var manager = new MarkerManager(args);
return manager;
}
})();
var marker1 = new Marker({name:'test0', lat:3 , lng:5, isDraggable:true, iconType:'red' });
var marker2 = new Marker({name:'test1', lat:33 , lng:55, isDraggable:true, iconType:'red' });
var marker3 = new Marker({name:'test2', lat:44 , lng:99, isDraggable:true, iconType:'red' });
var marker4 = new Marker({name:'test3', lat:55 , lng:77, isDraggable:true, iconType:'red' });
var marker5 = new Marker({name:'test4', lat:88 , lng:65, isDraggable:true, iconType:'red' });
var manager = new MarkerManager({test:'test2'}); //MarkerManager.getInstance({map:'testtt'});//
var manager2 = new MarkerManager({test:'test1'});
manager.addMarker(marker1);
manager.addMarker(marker2);
manager.addMarker(marker3);
manager2.addMarker(marker4);
manager2.addMarker(marker5);
alert(manager.getMarkerNameList());
alert(manager2.getMarkerNameList());
//output is "test0,test1,test2,test3,test4" for both manager objects. How can I separate them
MarkerManagerには2つの定義があり、Markerの定義はありません。また、あなたが助けを求めている問題が何であるかを述べてください。 – jfriend00
あなたの投稿のタイトルは何を意味していますか?シングルトンパターンを使用しようとしている場合、なぜ別のインスタンスを作成しようとしていますか? – nnnnnn
@nnnnn私が書いたのは異なるインスタンスを作成していないからです。 – user403295