Eric Lippert不久前写了一个关于这个主题的详细博文(另外将它与VBScript进行比较)。更准确地说,他写了< em > JScript < / em >,这是微软自己的ECMAScript实现,尽管与JavaScript非常相似。我可以想象,您可以假设Internet Explorer的JavaScript引擎的绝大多数行为是相同的。当然,实现因浏览器而异,不过我认为您可以将一些常见原则应用于其他浏览器。
function init() {
var bigString = new Array(1000).join('xxx');
var foo = document.getElementById('foo');
foo.onclick = function() {
// this might create a closure over `bigString`,
// even if `bigString` isn't referenced anywhere!
};
}