使用变量的值作为另一个变量的名称

时间:2012-08-03 00:00:22

标签: javascript string node.js variables

我有一个使用数组为不同的东西设置名称的函数

var settings = {
    slug: "foo"
}

现在,我想创建一个变量,whitch名称是settings.slug的值,在这种情况下是foo

这显然不起作用:

var settings.slug = new Schema({
  title : String
, content   : String
});

3 个答案:

答案 0 :(得分:1)

this[settings.slug] = ...

这应该有用。

答案 1 :(得分:1)

执行此操作的唯一方法是使用括号表示法并将其附加到现有对象。例如,您可以通过将其附加到global对象来使其成为全局变量:

global[settings.slug] = new Schema({
  title   : String
, content : String
});

global['foo'];  // your Schema object
foo;  // automatically will cascade to the global window variable global['foo']

答案 2 :(得分:0)

使用bracket notation

someObj[settings.slug] = new Schema(...);

// equivalent to 
someObj["foo"] = ...
// or
someObj.foo = ...

但是,您不应该设置global对象imho的属性。如果需要变量属性名,请使用额外的命名空间对象,但在全局对象上,您可能会覆盖一些重要的全局变量。