我剛剛通過timer.js的代碼HERE。和整個下面的代碼行來了:瞭解eval()的用法來評估布爾型
var paramList = ['autostart', 'time'];
for (var arg in paramList) {
if (func[paramList[arg]] != undefined) {
eval(paramList[arg] + " = func[paramList[arg]]");
}
};
在源代碼中所有在同一行,但我做了它上面的可讀性,我的困難是與eval
使用,即下面的代碼行:
eval(paramList[arg] + " = func[paramList[arg]]");
現在如果我在Chrome中添加斷點上述行,轉至控制檯和粘貼代碼行我得到以下幾點:
true
怎麼來的?讓我們再看看這個聲明:
eval(paramList[arg] + " = func[paramList[arg]]");
什麼是+
在這裏做?將paramList[arg]
轉換爲字符串,在這種情況下,eval的使用方式如下:
eval("paramList[arg] = func[paramList[arg]]");
?
或者是用於連接目的的加號? (我認爲這是不太可能的!)
我已閱讀MDN eval(),但仍有疑慮。
有人能解釋一下這個聲明的細節嗎?
謝謝。
+只是字符串連接 – caub