通过动态名称更新本地变量名称

用户名

我具有以下 全局 局部变量one并进行了two声明。

我还有一个对象,其中包含所有具有其初始值的变量。

我遇到的问题是,在检查变量是否具有localStorage值后,我想将'count'分配给 全局 局部变量,但是我不知道在什么情况下如何将其分配给全局变量我所拥有的只是“钥匙”。

我可以为每个全局变量编写if语句

if( key == "one" )  { one == count }

但这将是乏味的,有没有更简单的方法来做到这一点?

game = new Game();
function Game(){

    var one;
    var two;

    var variableStart = {
       "one":"100",
       "two":"200"
    }

    $.each(variableStart, function(){
        this.checkVariableValue = function( vName ){
            if( typeof localStorage[vName] == 'undefined' && localStorage[vName] == null )     {
               return false;
            }
            else{
                return localStorage[vName];
            }
        }
        var count;

        if( this.checkVariableValue( key ) == false ){
            count = value;
        }
        else{
            count = this.checkVariableValue(key);
        }

        if( key == one ){
            one = count;
        }
        else if( key == two ){
            two = count;
        }

    })
}
杰里米·史塔彻(Jeremy J Starcher)

首先,使用这样的全局变量确实是不好的编码。

其次,像这样使用两个单独的变量是不好的编码。

也就是说,我将向您展示如何做您想做的事情:

// Instead of:
var globalName = key;
globalName = count;

// Take advantage of the fact that globals can be accessed off the 'window' object.
window[key] = count;

如何做一个更清洁的方法

最好有一个全局对象,也许称为counts:

var counts = {};

然后,当您分配值时:

counts[key] = counts;

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章