如果你在编写网页时使用 jQuery,那么你一定会听说过“闭包”。那么什么是闭包呢?
在 JavaScript 中,闭包是指能够访问自由变量的函数。自由变量是指在函数中使用的,但既不是函数参数也不是函数的局部变量的变量。
来看一个简单的例子:
function outerFunction(){var outerVar = "I am outside!";function innerFunction(){alert(outerVar);};return innerFunction;}var inner = outerFunction();inner(); //输出"I am outside!"
在这个例子中,innerFunction() 是一个闭包。它能够访问 outerFunction() 中的 outerVar 变量,虽然 outerVar 不是它的局部变量也不是它的参数。
在 jQuery 中,我们常用闭包来避免变量污染,比如在使用 each() 函数时:
$("ul li").each(function(){var index = $(this).index();$(this).click(function(){alert("You clicked item " + index);});});
在这个例子中,我们定义了一个含有闭包的 click 函数,它能够访问 each() 函数中的 index 变量。
总之,闭包是一个非常有用的编程概念,尤其在 jQuery 中更是如此。希望这篇文章能够帮助你更好地理解它。