此 Google Chrome扩展程序的JavaScript代码。
它有效,但我想知道一件事。它位于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如何以需要这些装置的方式处理变量。