JS 闭包

来源:互联网 发布:大学排课软件 编辑:程序博客网 时间:2024/06/06 22:43

闭包就是函数中包含函数,被包含的函数能够访问包含函数的作用域。

function Cover(){        var cover_a="111";        var bibao_fun=function(){            alert(cover_a);        }    }

闭包常用语创建私有作用域

function Cover(){//私有变量         var cover_a=1var bibao_fun=function(){            alert(cover_a);        }//公有函数访问私有变量        this.publicfun=function(){            cover_a++;            bibao_fun();            alert(cover_a);        }    }var test1=new Cover();console.log(test1.cover_a)//errortest1.publicfun();//right,2var test2=new Cover();test2.publicfun();//right,2//私有变量非静态

创建静态私有变量

创建块级作用域

(function(){        var private1=1;        function privatefun(){            return private1;        }        Private=function(){ //创建了全局变量 ,私有变量在调用后会立即销毁,除非其赋予全局变量或在函数中使用        };        Private.prototype.publicfun=function(){            private1++; //被使用            return privatefun();        }    })()    var p1=new Private();    var result1=p1.publicfun();    var p2=new Private();    var result2=p2.publicfun();    console.log(result1);//2    console.log(result2);//3

单实例对象模块模式

var singleobj=function(){        var private1=1;        function privatefun(){            return private1;        }        var newobj=new Object();        newobj.newpro=11;        newobj.newfun=function(){            private1++;            return privatefun();        }        return newobj;    }();    console.log(singleobj.newfun());//2
原创粉丝点击