JS 闭包

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

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)//error
test1.publicfun();//right,2
var 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
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值