0
eval(id+' = new MyObject()');
,我想訪問得到的對象和它的方法。我可以這樣做
myObject = eval(id);
myObject.myMethod();
但有什麼優雅的替代品使用eval?
eval(id+' = new MyObject()');
,我想訪問得到的對象和它的方法。我可以這樣做
myObject = eval(id);
myObject.myMethod();
但有什麼優雅的替代品使用eval?
假設id
旨在成爲一個全球性的對象,你在瀏覽器中執行,
window[id] = new MyObject();
myObject = window[id];
myObject.myMethod();
或者你可以只修改代碼到id
存儲到一個對象。
var objectStore = {};
objectStore[id] = new MyObject();
myObject = objectStore[id];
myObject.myMethod();
不錯!窗口[id]工作。謝謝! – 2011-05-11 22:04:08
爲什麼你需要'eval'呢? – Nicole 2011-05-11 17:59:15
@Renesis有可能他不知道變量的實際名稱 - 比如說名字是在運行時生成的或者其他的東西。但他確實知道'id'包含該名稱,它可以用於以編程方式獲得對真實項目的引用。 – lincolnk 2011-05-11 18:40:25
@lincolnk - 我認爲我的問題是成立的,因爲在組織良好的JS開發中這不是一個常見的用例。 – Nicole 2011-05-11 19:49:32