我声明了以下全球 本地变量one
和two
。
我还有一个包含所有变量的对象及其起始值。
我遇到的问题是在检查变量是否具有localStorage值之后我想将'count'分配给 global 局部变量,但我不知道当我拥有的只是'关键'时,我知道如何将它分配给全局变量。
我可以为每个全局变量创建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;
}
})
}
答案 0 :(得分:1)
首先,使用像这样的全局变量确实是错误的编码。
其次,使用两个单独的变量就是编码错误。
那就是说,我会告诉你如何做你想做的事情:
// Instead of:
var globalName = key;
globalName = count;
// Take advantage of the fact that globals can be accessed off the 'window' object.
window[key] = count;
如何更清洁地
最好有一个全局对象,可能称为计数:
var counts = {};
然后,当你去分配值时:
counts[key] = counts;
答案 1 :(得分:0)
你可以像这样设置它。全局变量在全局元素中可用(通常为window
)
window[key] = count