Сложно объяснить дело словами, приведу пример:
var myObj = {
'name': 'Umut',
'age' : 34
};
var prop = 'name';
var value = 'Onur';
myObj[name] = value; // This does not work
eval('myObj.' + name) = value; //Bad coding ;)
Как я могу установить свойство переменной со значением переменной в объекте JavaScript?
javascript
object
properties
set
Умут КИРГЁЗ
источник
источник
myObj[prop] = value;
.eval('myObj.'+name)
не работает, так как переменнаяname
не существует.var
клавиатур для объявления переменных, использовать больше точек с запятой, а не использоватьeval
и принимать больше ответов. Готово.myObj[name]
", когда я совершенно уверен, что вы хотели написать "myObj[prop]
".Ответы:
Это должно сработать. Вы перепутали имя переменной и ее значение. Но индексация объекта с помощью строк для получения его свойств отлично работает в JavaScript.
источник
или
Оба они взаимозаменяемы.
Изменить: я предполагаю, что вы имели в виду
myObj[prop] = value
вместо myObj [name] = value. Второй синтаксис отлично работает: http://jsfiddle.net/waitinforatrain/dNjvb/1/источник
name
вам нужноprop
Вы можете получить свойство так же, как вы его установили.
Вы устанавливаете значение
foo["bar"] = "baz";
Чтобы получить значение
foo["bar"]
вернет "баз".
источник
Вы также можете создать что-то похожее на объект значения (vo);
SomeModelClassNameVO.js;
Чем вы можете просто сделать;
источник
Когда вы создаете объект
myObj
как есть, думайте о нем больше как о словаре. В этом случае у него есть две клавишиname
, иage
.Вы можете получить доступ к этим словарям двумя способами:
myObj[name]
); илиmyObj.name
); Обратите внимание, что некоторые свойства зарезервированы, поэтому предпочтительнее использовать первый метод.У вас должна быть возможность без проблем получить к нему доступ как к собственности. Однако, чтобы получить доступ к нему как к массиву, вам нужно рассматривать ключ как строку.
В противном случае javascript будет считать, что
name
это переменная, и поскольку вы не создали вызываемую переменнуюname
, он не сможет получить доступ к ожидаемому ключу.источник
myObj[name]
и ,myObj.name
хотя, потому что первый относится к имени переменной , а второй в буквальном ключе.просто как это
myObj.name = value;
источник