Как правильно создать имена аргументов var в модуле для создания нового класса?
В следующем примере кода я хочу каким-то образом создать переменную myThingName через аргументы функций, чтобы избежать создания глобальных имен переменных вне модуля. Я возился с окном ['myvarname'] = "Яда"; Но это глобально и похоже на полный взлом.
Короче говоря, я предполагаю, что мне нужно иметь способ сделать много переменных, как: myThingName_1 myThingName_2 и т. Д...
Фон: я пытаюсь создать конструктор Canvas Element, чтобы поместить любое количество отдельных элементов Canvas на экран. Я использую различные библиотеки, такие как Paper.js Kinetic.js и т. Д. При попытке упростить производство я создал модуль-оболочку, но теперь застрял в том, как создавать уникальные имена переменных для конструктора библиотек KLASS для их различных реализаций stage или scope.
Возможно, я делаю вещи совершенно неправильно с самого начала. Но на данный момент я в тупик, как это происходит, или как называется шаблон, который я ищу.
var MagicThingModule = {
createThing : function(myThingNameAsString){
var myThingName = myThingNameAsString;
myThingName = new KLASS.Shape({ // code });
},
init : function(myThingNameAsString){
createThing(myThingNameAsString);
}
}
MagicThingModule.init("sendNameForThing_1");
1 ответ
Как насчет:
var MagicThingModule = {
allMyThings: {},
createThing : function(myThingNameAsString){
var myThingName = myThingNameAsString;
myThingName = new KLASS.Shape({ // code });
this.allMyThings[myThingNameAsString] = myThingName;
},
// use me to et your thing back...
getMyThing: function(myThingName){
return this.allMyThings[myThingName];
},
init : function(myThingNameAsString){
createThing(myThingNameAsString);
}
}
и позже вы можете ссылаться на него по:
var myThing = MagicThingModule.getMyThing("sendNameForThing_1");