此代碼爲谷歌瀏覽器擴展程序。爲什麼我的JavaScript代碼在for循環中複製變量時工作
它的工作原理,但我想知道一件事。它在for循環中迭代關聯數組並在Chrome函數中使用它的值。
這只是正常:
var links =
{
apps: 'chrome://apps/',
bookmarks: 'chrome://bookmarks/',
history: 'chrome://history',
...
};
for (var link in links)
{
(function()
{
var href = links[link];
document.querySelector('#' + link).addEventListener('click', function() { chrome.tabs.create({ url: href }); });
})();
}
但隨着一些改變它突然不(更改高亮)
var href = links[link];Look -----v [...].addEventListener('click', function() { chrome.tabs.create({ url: links[link] }); });
而且我有使用(function() { })();
模式(我不知道名字),否則它也不起作用。
問題
爲什麼同時使用模式和變量拷貝時,這只是工作的?請向我解釋JavaScript是如何處理變量的,這些變量是需要這些工具的。
有趣。學到了更多關於JavaScript的知識。感謝您的好回答:) – bytecode77