使用现有对象属性创建javascript对象

时间:2012-02-23 22:33:25

标签: javascript json

好吧我不确定我是否正确地说了这个标题,我真的不能把它描述为我正在尝试做的标题。

我正在为我的作品编写一个插件,并且我有一个以对象文字符号指定的路径,如此

var options = {
    jwPath: "/jwplayer/",
    mediaPath: "/media/",
    skin: "",
    fileName: "mms"
};

所以我接下来就有了我的选择我试图使用其中一些不起作用的参数将插件加载到jwplayer中,它可能只是我看起来很少但我正在尝试加载通过执行以下操作插件

plugins : {
    options.jwPath + 'plugins/hd/hd.js' : {
        file: options.mediaPath + options.fileName + '-hd.mp4'
    }
}

我一直在代码的options.jwPath部分出错。有任何想法吗?这只是我忽视的一点点吗?

2 个答案:

答案 0 :(得分:2)

你不能这样做:

var options = {
    jwPath: "/jwplayer/",
    mediaPath: "/media/",
    skin: "",
    fileName: "mms"
};
var plugins = {};
plugins[options.jwPath + 'plugins/hd/hd.js'] = {
    file: options.mediaPath + options.fileName + '-hd.mp4'
};

但括号表示法可行。

答案 1 :(得分:0)

创建对象文字时,不能使用表达式作为属性名称。相反,请使用tmpobj = {},然后添加tmpobj[options.jwPath+'plugins/hd/hd.js'] = {file:....};。最后,使用plugins:{tmpobj}