[英]Easy accessible variable that isn't in the Global scope
我正在使用CreateJS库构建游戏。 在当前版本中,我将很多变量和对象保存在Global范围内,这确实很整洁,并且使各种扩展类都可以轻松重用SpriteSheets等。
我正在寻找一种不使用全局范围的方法。 显然,我可以将spritesheet或包含spritesheet作为参数的类传递给我制作的所有displayobjects,但是我希望有一种更巧妙的方法来实现。
有关如何实现此目标的任何建议或技巧将很有帮助。
您可能要使用一个模块 :
var main = (function(){
var myPrivateVal1 = "Something";
var myPrivateVal2 = 56;
var myVeryPrivateVal = 3;
//Return only what you want to expose
return {
myPublicVal: 123,
getVal1: function(){
return myPrivateVal1;
},
getVal2: function(){
return myPrivateVal2;
},
doCalculation: function(){
return myVeryPrivateVal * myPrivateVal2;
}
}
})();
console.log(main.myPublicVal); //123
console.log(main.myPrivateVal1); //undefined
console.log(main.myPrivateVal2); //undefined
console.log(main.myVeryPrivateVal); //undefined
console.log(main.getVal1()); //Something
console.log(main.getVal2()); //56
console.log(main.doCalculation()); //168
在这里,您有一个全局变量main ,它是一个模块,它公开您需要公开的内容,但仍跟踪所需的变量。
请参阅此 JSFiddle。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.