的錯誤是在這裏:
console.log(result);
刪除了這一行,所有應罰款。
console
對象是一個Firebug的東西(指的是Firebug控制檯)。 Safari/Chrome恰好也實現了一個console
對象(指Webkit js控制檯)。 Firefox,其他瀏覽器的確沒有控制檯對象。所以它會拋出一個錯誤。
順便說一句:像往常一樣,這些傳聞是完全沒有必要的。這是完全等效代碼:
for (key in document) {
result[i] = typeof document[key];
result[i+1]="document."+key;
i+=2;
}
如果你堅持稱它request
然後用它作爲參考:
var request = window.document;
for (key in request) {
result[i] = typeof request[key];
result[i+1]=request+"."+key;
i+=2;
}
如果你堅持用字符串傳遞對象名稱,然後理智的緣故使用eval在一個不易混淆的方式:
var string = "window.document";
eval("var request ="+string);
for (key in request) {
result[i] = typeof request[key];
result[i+1]=request+"."+key;
i+=2;
}
雖然我不會做甚至(有時是必要的,但只有很少)。
爲什麼你需要再次使用eval? – 2010-09-23 17:12:24
一個eval內的eval,我希望你有一個猛禽圍欄。 – MooGoo 2010-09-23 17:30:02
如果只有JavaScript有一個goto語句,我可以扔進... – Michael 2010-09-23 18:12:55