これは、オブジェクトの表記法です。 ':'の前の最初の単語がキーです。それは常に文字列です。これは、割り当てたい値に名前を割り当てるのと同じです。 2番目の値は値です。 この表記法では、変数をキーとして割り当てることはできません。キーは常に定数と文字列になります。
{ gold: gold, silver: silver }
is same as
var obj = { 'gold': gold, 'silver': silver }
変数をキーとして割り当てるには、角カッコ表記を使用する必要があります。
var key1='gold';
var key2='silver';
var obj={};
// assuming gold and silver to defined
obj[key1]=gold;
obj[key2]=silver;
どちらの場合も、objは同じです。ただし、値を割り当てる前にキー名がわかっている場合は、2番目の形式を使用できます。
function clone(original){
var clone={};
for(var key in original){
// Dont know what is the value of key. So we need to use square
//bracket. clone.key would be incorrect to use because it would be
//considered string.
clone[key]=original[key];
}
return clone;
}
は何@IrkenInvader言った:たとえば
は、オブジェクト(1レベル)をクローン化するためのコードを見ることができます。私はコードがどのように機能しているのか不思議ではないかと想像していますが、実際に{5:5}を望むなら({ほとんどの場合} {{gold:5}}ははるかに意味のあるオブジェクト構造です。 –
タイトルとタグはあなたの実際の質問とは関係がありません。あなたの質問を更新/簡略化しました。あなたが気に入らなければ、元気に元気に戻してください。 –