2012-02-23 14 views
0

OKタイトルに正しく名前を付けるかどうかは分かりませんが、私がしようとしているものを実際にタイトルとして記述することはできませんでした。既存のオブジェクトプロパティを使用して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' 
    } 
} 

を行うことで、プラグインをロードしようとしています.jwパスのコード部分。何か案は?それは私が見落としているものですか?

+0

可能な複製[動的キーと値のペアをオブジェクトリテラルに渡すか?](http://stackoverflow.com/questions/4119324/passing-in-dynamic-keyvalue-pairs-to-an-object-literal ) –

答えて

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

0

オブジェクトリテラルを作成するときに、プロパティ名に式を使用することはできません。代わりにtmpobj = {}を使用し、tmpobj[options.jwPath+'plugins/hd/hd.js'] = {file:....};を追加します。最後に、plugins:{tmpobj}を使用してください。

関連する問題