2012-02-23 158 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}

相關問題