js 闭包 应用

1,闭包可以用作封装,避免变量污染

2,闭包可为不能传参的函数传参,例如定时器,异步请求的回调函数,各种事件的触发函数

以下是测试的一些例子

//匿名函数的应用

(function()
{
    return function()
    {
        alert(9);
    }
}


    )()();


var xx1 =(function(){
    
    var reqObj= function()
    {
        //alert("pb");
        this.x  = 3;
    }
    reqObj.prototype = 
    {
        init:function()
        {
            this.x++;
        }
    };
    


    return (function(){
    


        return  new reqObj();
    });
})();
    console.info("xxxxxxxxxxxx="+xx1().x);
        console.info("xxxxxxxxxxxx="+xx1().x);


//异步加载时,传参数,dom对象
function request(kind,type,Object){
    httpxml = createXMLHttpRequest();
    var test1 = callBack(httpxml);//返回内部函数
    //地市流量   
    ajax(httpxml,"get","http://125.71.202.23:8888/monitor/scdxReportsController/getLargData?kind="+kind,"");
    httpxml.onreadystatechange = test1;//调用
}
function callBack(httxml)
{
    return function()
    {
        alert(httxml.status);
    }
}
3,在顺带说一下,js中的匿名函数
类似下面这种写法
(function(){
})//此为定义一个匿名函数


(function(){

})();//此为先定义,后运行

(function(){

})()();此为运行此匿名函数返回的函数类型的变量

这种立即执行函数,会在函数外加上括号或者一个运算符,主要是为了把函数声明转换为函数表达式,这样浏览器解析器才不会解析出错。

类似的还有这种写法 !function(){}();

js中还可以用逗号分隔语句,主要用于压缩空间。


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值