2011-10-03 8 views
2

私はJavaScriptを初めて使い、いくつかの実験を試みています。一つの質問があります。私は実行時にJavascriptオブジェクトに新しいプロパティを作成できますが、そのプロパティにも値を割り当てることができます。例えば。JavaScriptリテラルでプロパティ名に変数を使用しますか?

var value = "New value"; 

var table = new Object(); 

var newValue = table[value]; 

ここで、値テーブルには「値」という新しいプロパティがあることがわかりました。だから、それは今、テーブルオブジェクトを意味しているのが、新たな価値」「値キーがなどの情報が含まれている」ということはないことは、次のようなものです:あなたの助けを

table = { 
value:"New Value"; 
} 

感謝を事前にみんなで

-Vik

+2

。 – hugomg

+1

console.log(テーブル); –

+0

また、オブジェクトリテラル '{...} 'のセミコロン('; ')は無効です。カンマ( '、')を使用してプロパティを区切ります。オブジェクトのリテラルをINSIDEします。 –

答えて

4

あなたは割当でのアクセスが混乱しています。

// Assigns a variable named 'value' with a value of 'New Value'. 
var value = "New value"; 
// Creates a variable named 'table' as a blank Object. 
var table = new Object(); // Alternatively - table = {}; 
// Attempts to access "New Value" from object "table" which returns undefined. 
var newValue = table[value]; 

あなたはこのようにそれを行うオブジェクトにプロパティを割り当てる場合:あなたは、その値を取得し、新しい変数に格納したいときにやるとき

// Assumes table is still an object. 
table['key'] = 'value'; 

// Note that I almost _always_ opt for the variable['key'] notation over 
// the variable.key notation because it allows you to use keys 
// that would otherwise not be valid as identifiers. 
table['Some Key'] = 'Some Value'; // This works. 
table.Some Key = 'Some Value'; // This does not. 

その後、それはですこれは:

var newVariable = table['key']; 

うまくいけば、いくつかを明確にします。私がその部分を拡大できるかどうか私に教えてください。

3

ありません。あなたの文

var newValue = table[value];

あなたはを作成した時に何も設定し、以来されていませんあなたはプロパティを割り当てなかったので、newValueundefinedになります。

あなたは値が割り当てられvalue変数を持っている、とあなたは、キーvalue下の表にその値を割り当てたい場合は、あなたが

table['value'] = value;

または代わり

table.value = valueをしたいです

1

Erm、いいえ、私はあなたがそれを正しく持っているとは思わない。

存在しないtableの "New Value"プロパティにアクセスしようとしているため、undefinednewValueが割り当てられます。私はあなたがやろうとしていると思う何

このさ: `{}`ほぼすべての可能な方法で新しいオブジェクト() ``より道進歩してリテラル表記をオブジェクト、ところで

var value = "New value"; 
var table = {}; 
table.value = value; 
関連する問題