2014-10-26 4 views
0

Мне нужно преобразовать строку var (в JavaScript) в имя переменной, которое вызывается при получении элемента. Мой спонтанное решение этой проблемы писал:Как преобразовать строку в имя var при вызове функции

this.name = name; 
[...] 
this.context.drawImage(imageRepository.(this.name), this.x, this.y); 

Это не работает, однако, возвращение «Неожиданный маркер (» Любые предложения

ответ

1

Вы ищете название недвижимости, а не имя переменной. Вы можете использовать в квадратные скобках обозначения, что:

imageRepository[this.name] 

В JavaScript, вы можете обратиться к свойствам двух способов: с помощью точечной нотации и имя свойства буквального (obj.foo), или используя квадратные скобки обозначения и имя свойства строка (obj["foo"]). В последнем случае строка может быть результатом любого выражения, включая поиск свойства на другом объекте (this.name).

+1

Aha, thanks :-) имя свойства, я обязательно буду обращаться к нему надлежащим образом в следующий раз –

0

Вы должны брекет обозначения в этом случае

imageRepository[this.name] 

.?. Обозначение скобки оценивает переменную и выбирает подходящее свойство.

Смежные вопросы