gpt4 book ai didi

javascript - 在模块中创建新类的参数 var 名称的正确方法是什么?

转载 作者:行者123 更新时间:2023-12-03 12:02:52 24 4
gpt4 key购买 nike

在下面的代码示例中,我想通过函数参数以某种方式创建一个 var myThingName,这样我就可以避免在模块之外构建全局 var 名称。我修改了 window['myvarname'] = "yada";但这是一个全局的,感觉像是一个彻底的黑客攻击。

简而言之,我假设我需要一种方法来创建许多变量,例如:myThingName_1 myThingName_2 等...

背景:我正在尝试构建一个 Canvas 元素构造函数,以将任意数量的单独 Canvas 元素放置到屏幕上。我正在使用各种库,如 Paper.js Kinetic.js 等。在尝试简化生产时,我构建了一个模块包装器,但现在陷入了如何为库 KLASS 构造函数为其阶段或范围的各种实现创建唯一的变量名称的问题。

也许我从一开始就做事完全错误。但目前我对这是如何发生的或者我正在寻找的模式的名称感到困惑。

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");

关于javascript - 在模块中创建新类的参数 var 名称的正确方法是什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25331230/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com