2012-02-23 131 views
0

好吧,我不确定我是否正确地写出了标题,但我真的不能将其描述为我正在尝试做的标题。使用现有的对象属性创建一个JavaScript对象

我在写我的工作插件和我在一个对象的文字符号指定,像这样

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

所以我有我的选择有下一个我试图加载插件安装到jwplayer路径使用某些参数这是不工作的,很可能只是一些小我找过,但我想这样做来加载插件遵循

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

我不断的选项得到一个错误代码的.jwPath部分。有任何想法吗?这只是我忽略的一点点吗?

+0

[将动态关键字:值对传递给对象字面量?](http://stackoverflow.com/questions/4119324/passing-in-dynamic-keyvalue-pairs-to-an-object-literal ) – 2012-02-24 00:33:44

回答

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' 
}; 

但括号标记会工作。

+0

工作就像一个魅力!谢谢 – projectxmatt 2012-02-23 22:43:22

0

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

相关问题