在下面的代码示例中,我想通过函数参数创建var myThingName变量,这样就可以避免在模块外部构建全局var名称。我已经修改了window ['myvarname'] =“ yada”; 但这是一个全球性问题,感觉就像是一个完整的hack。
简而言之,我假设我需要一种方法来制作许多变量,例如:myThingName_1 myThingName_2等。
背景:我试图构建一个Canvas Element构造函数以将任意数量的Canvas单个元素放到屏幕上。我正在使用各种库,例如Paper.js Kinetic.js等。当试图简化生产时,我构建了模块包装器,但现在陷入了如何为库KLASS构造函数为其阶段或范围的各种实现创建唯一的var名称的问题。
也许我从一开始就完全不正确地做事。但是目前,我对这种情况的发生或所寻找模式的名称感到困惑。
var MagicThingModule = {
createThing : function(myThingNameAsString){
var myThingName = myThingNameAsString;
myThingName = new KLASS.Shape({ // code });
},
init : function(myThingNameAsString){
createThing(myThingNameAsString);
}
}
MagicThingModule.init("sendNameForThing_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");
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句