我有一个使用数组为不同的东西设置名称的函数
var settings = {
slug: "foo"
}
现在,我想创建一个变量,whitch名称是settings.slug
的值,在这种情况下是foo
这显然不起作用:
var settings.slug = new Schema({
title : String
, content : String
});
答案 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)
someObj[settings.slug] = new Schema(...);
// equivalent to
someObj["foo"] = ...
// or
someObj.foo = ...
但是,您不应该设置global
对象imho的属性。如果需要变量属性名,请使用额外的命名空间对象,但在全局对象上,您可能会覆盖一些重要的全局变量。