JavaScript中闭包的应用

来源:互联网 发布:java执行vbs 编辑:程序博客网 时间:2024/06/07 17:22

闭包是有权访问另一个函数作用域中的变量的函数

作用域链: 作用域链就是函数在定义的时候创建的,用于寻找使用到的变量的值的一个索引,而他内部的规则是,把函数自身的本地变量放在最前面,把自身的父级函数中的变量放在其次,把再高一级函数中的变量放在更后面,以此类推直至全局对象为止。

内存回收机制: 如果这个函数内部又嵌套了另一个函数,而这个函数是有可能在外部被调用到的.并且这个内部函数又使用了外部函数的某些变量的话.这种内存回收机制就会出现问题。

闭包作用:一个是可以读取函数内部的变量,另一个就是让这些变量的值始终保持在内存中。

1.函数作为返回值

function F1( ){    var a=100;    return function ( ){        console.log(a); //自由变量,去父级作用域找    }}var f1=F1( );var a=200;f1( ); //100

2.函数作为参数传递

function F1( ){    var a=100;    return function ( ){        console.log(a); //自由变量,去父级作用域找    }}var f1=F1( );function F2( fn){    var a=300;    fn( );}F2(f1);  //100
原创粉丝点击