2017-01-26 15 views
1

関数パラメータを使用してオブジェクトを作成するにはどうすればよいですか?関数パラメータを使用してオブジェクトを作成する

function hell(par1, par2) { 
return { par1 : par2 }; 
} 
hell(ID, 1); 

Iリターン{ID:1}たい現代のJavaScriptで

+1

[変数を使用して動的にアクセスオブジェクトプロパティ]の可能な複製を(http://stackoverflow.com/questions/4244896/dynamically-access-object-property -use-variable) – melpomene

答えて

2

function hell(par1, par2) { 
return { [par1] : par2 }; 
} 
hell("ID", 1); 

ブラケット([ ])プロパティ名の周りには、名前が封入の値でなければならないことを意味します表現。

また、関数を呼び出すとき、最初の引数の値は文字列でなければならないことにも注意してください。 IDの代わりに"ID"を使用するようにコードを変更しました。変数がIDという名前で浮かんでいれば、それは文字列に評価できる限り、問題ありません。

これはかなり最近の言語の追加です。あなたのコードは、古いブラウザで実行する必要がある場合は、このような何かをする必要があると思います:

function hell(par1, par2) { 
var obj = {}; 
obj[par1] = par2; 
return obj; 
} 
+0

ありがとう、どこでjsオブジェクトについて読むことができますか? –

+0

さて、[情報源のひとつです](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Operators/Object_initializer)。 – Pointy

0

Computed Property Namesと呼ばES6の新機能があります。あなたがしなければならないと思いますES5で

function hell(par1, par2) { 
    var obj = {} 
    obj[par1] = par2; 
    return obj; 
} 
hell('ID', 1); // -> { ID : 1 } 
関連する問題