I know we can create new properties in Javascript objects during runtime but could that property be assigned a value t开发者_如何学Coo? For example.
var value = "New value";
var table = new Object();
var newValue = table[value];
Now, I know that value table has a new property called "value". but does that "value key contains the information as " New Value". So, does that mean now table object is like following:
table = {
value:"New Value";
}
You're confusing accessing with assigning.
// 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];
If you want to assign properties to an object you do so like this:
// 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.
Later, when you want to retrieve that value and store it in a new variable, that's when you do this:
var newVariable = table['key'];
Hopefully that clarifies some. Please let me know if I can expand on any part of it.
no. your statement
var newValue = table[value];
is not setting anything, and since at the time when you created table
you didn't assign any property, newValue
will be undefined
.
If you have a value
variable that is assigned a value, and you want to assign that value to table under the key value
, you want to do
table['value'] = value;
or alternatively
table.value = value
Erm, no, I don't think you've got it quite right.
All that does is assign undefined
to newValue
, because you're trying to access table
's "New Value
" property, which doesn't exist.
What I think you're trying to do is this:
var value = "New value";
var table = {};
table.value = value;
精彩评论