函数式编程-闭包跨域开发

来源:互联网 发布:淘宝哪家赌石好 编辑:程序博客网 时间:2024/06/05 20:57
闭包特性:
(1)封闭性  -->   外界无法访问闭包内部的数据
(2)持久性  -->   对于一般函数,在调用完毕之后,系统会自动注销函数。
                            对于闭包函数,在外部系统被调用之后,闭包结构依然保存在系统中,闭包中的数据依然存在,从而实现对数据的持久使用。

/*函数体内定义两个变量,分别存储参数和闭包结构。闭包结构中寄存着参数值。调用函数f之后,函数结构被注销,它的局部变量也随之被注销,因此变量a中存储的参数值也随之丢失。(外部函数返回后会自动销毁,内部的结构,标识符,数据也会随之丢失)但是
   变量b存储着闭包结构,因此闭包结构内部的参数没有被释放出来。在调用参数后,依然能从闭包结构中读取到参数值*/

function f(x){     

    var a = x ;

    var b = function(){

        return a;

    };

    a++;           //  自加后,把这个值传递给对象属性a,内部函数动态保持与局部变量a的联系,同时更新自己内部调用变量的值。

return b;
}
var c = f(  5  );                  // 调用外部函数,并赋值
console.log( c() );           // 调用外部函数,返回外部函数更新后的值

//  闭包函数包含以下标识符:
// 函数参数(形参变量) 、arguments属性、局部变量、内部函数名、this(指闭包函数自身)
// this --> 局部变量 --> 形参 --> arguments --> 函数名

0 0
原创粉丝点击