ECMAScript 最容易让人误解的是它支持闭包 (closure) .所谓闭包,只是词法标识包括不必计算的变量的函数.也就是说,函数能使用函数外定义的变量.在ECMAScript 中使用全局变量是一个简单的闭包实例.
var ss = 「abc」
function say(){
alert(ss);
}
say();
代码中,脚本被载入内存后,并未为函数say()计算变量的值.该函数捕获 ss 的值以便以后使用,也就是说,解释程序知道在调用该函数时要检查 ss 的值. ?ss 将在函数调用 say() 时被赋值.显示.
之前我也一直存在一个疑问比如:
window.onload = function(){
var oDiv = document.getElementById(「divID」);
var ?btn = doucment.getElementById(「btnID」);
btn.onclick = function(){
oDiv.innerHTML = 「Hello world!」;
}
}
想这样的一个基于DOM的引用算不算闭包的应用,现在我想应该有答案了.