每次在javascript中运行函数时,创建一个新的唯一全局变量

Jud*_*son 6 javascript

可能重复:
Javascript动态变量名称

一个非常基本的问题.我想在每次调用函数时创建一个新的javascript全局变量.变量应该包含元素的id,以便我以后可以轻松访问它.

id = 2347

//this function would be called multiple times, hopefully generating a new global each time
function (id)
{
var + id = something
// I want a variable that would be named var2347 that equals something, but the above line doesn't get it.
}
Run Code Online (Sandbox Code Playgroud)

在以后的函数中,我想像这样访问变量:

function two (id)
{
alert(var + id);
}
Run Code Online (Sandbox Code Playgroud)

我相信我会有一个"doh!" 有人能够回答这个问题的那一刻.

Šim*_*das 7

怎么样...

var store = (function() {
    var map = {};

    return {
        set: function ( name, value ) {
            map[ name ] = value;
        },
        get: function ( name ) {
            return map[ name ];
        }
    };
})();
Run Code Online (Sandbox Code Playgroud)

用法:

store.set( 123, 'some value' );
Run Code Online (Sandbox Code Playgroud)

然后...

store.get( 123 ) // 'some value'
store.get( 456 ) // undefined
Run Code Online (Sandbox Code Playgroud)

现场演示: http ://jsfiddle.net/jZfft/

强烈建议程序员不要声明全局变量,因为浏览器已经在全局命名空间中附带了数百个名称.对自己的变量使用全局命名空间可能会导致名称冲突,从而破坏程序或某些浏览器的功能.创建新的命名空间是免费的,所以不要害羞地去做...