Альтернатива eval для доступа к объекту по имени строки? - PullRequest
0 голосов
/ 11 мая 2011

У меня есть следующее

eval(id+' = new MyObject()');

, и я хочу получить доступ к полученному объекту и его методам.Я мог бы сделать это с

myObject = eval(id);
myObject.myMethod();

, но какие есть элегантные альтернативы использованию eval?

1 Ответ

2 голосов
/ 11 мая 2011

Предположим, что id предназначен для глобального объекта, и вы выполняете в браузере,

window[id] = new MyObject();
myObject = window[id];
myObject.myMethod();

Или вы можете просто изменить код для сохранения этого id в объекте.

var objectStore = {};

objectStore[id] = new MyObject();
myObject = objectStore[id];
myObject.myMethod();
...