2016-07-14 72 views
-3

我有這樣的功能:的Javascript的eval()重構

function x(a,b,c) { 
    eval("window.document.forms['"+ a +"']."+ b +".value = '"+ c +"'"); 
} 

我明白爲什麼EVAL ===邪惡的大部分時間,有啥不寫使用eval該功能的最佳方式?以下是否合理?爲什麼?

function x(a,b,c) { 
    window.document.forms[a].b.value = c.toString(); 
} 
+0

爲什麼'c.toString()'?什麼是c – bugwheels94

+1

'window.document.forms [a] [b] .value = c' ??!?!!? –

+0

爲什麼'window.document'?只要使用'document' – Oriol

回答

1

你上面的函數沒有理由使用eval - 使用括號標記通過一個變量來訪問對象的屬性:

window.document.forms[a][b].value = c.toString();