繁体   English   中英

不在全局范围内的易于访问的变量

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM