网站 新媒体建设情况,安装wordpress数据库连接时出错,简约网站版式,怎么做代刷网站教程闭包的应用 闭包是ECMAScript最强大的特性之一。所谓“闭包”#xff0c;是指在一个函数的执行过程中返回另一个函数对象。如#xff1a;function testClosure(){ //private var aprivate; function getValue() { //引用testClosure的… 闭包的应用 闭包是ECMAScript最强大的特性之一。所谓“闭包”是指在一个函数的执行过程中返回另一个函数对象。如function testClosure(){ //private var aprivate; function getValue() { //引用testClosure的变量 alert( a ); } //返回对内部函数的引用 return getValue;}var getV testClosure();getV();在阐述闭包执行调用的过程之前我们需要了解一下JavaScript的垃圾自动回收机制。ECMA262规范要求遵循本规范的语言均要设计垃圾自动回收机制但是规范中并没有详细说明相关的细节而具体的回收方式留给语言自身来决定。尽管不同的引擎实现的方式和侧重点不同但大致的思想都是相同的即如果对象不再“可引用由于不存在对它的引用使执行代码无法再访问到它”时该对象就成为垃圾回收的目标。因而在将来的某个时刻不确定何时会将这个对象销毁并将它所占用的一切资源释放以便操作系统重新利用。类似于C语言的堆栈管理在JavaScript中当正常退出一个执行环境时就满足类似的条件。此时作用域链结构中的活动对象及在该执行环境中创建的任何对象包括函数对象都不再“可引用”因此将成为垃圾回收的目标。上例中由于getV变量引用了testClosure方法返回的内部getValue方法因此testClosure执行环境中的变量以及所创建的Function对象等都不会被垃圾回收仍然可以通过所引用的变量访问到testClosure方法所定义的内部全局变量。转载于:https://www.cnblogs.com/myjavait/archive/2009/03/13/2142584.html