《JavaScript 高级程序设计》-闭包

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的引用算不算闭包的应用,现在我想应该有答案了.

發表回覆

你的電郵地址並不會被公開。 必要欄位標記為 *