js 闭包 应用
2017-05-29 15:59
190 查看
1,闭包可以用作封装,避免变量污染
2,闭包可为不能传参的函数传参,例如定时器,异步请求的回调函数,各种事件的触发函数
以下是测试的一些例子
//匿名函数的应用
(function(){
})();//此为先定义,后运行
(function(){
})()();此为运行此匿名函数返回的函数类型的变量
这种立即执行函数,会在函数外加上括号或者一个运算符,主要是为了把函数声明转换为函数表达式,这样浏览器解析器才不会解析出错。
类似的还有这种写法 !function(){}();
js中还可以用逗号分隔语句,主要用于压缩空间。
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中还可以用逗号分隔语句,主要用于压缩空间。
相关文章推荐
- 前端开发必须知道的JS之闭包及应用
- WEB应用之:JS 闭包
- js闭包的定义与应用+获取元素下标的多种方法
- 使用JS闭包特性的简单应用
- js核心基础之闭包的应用
- JS 循环li添加点击事件 (闭包的应用)
- JS高级应用——JS闭包学习
- 前端开发必须知道的JS(二) 闭包及应用
- 前端开发必须知道的JS之闭包及应用
- js 闭包的定义以及应用实例
- 前端开发必须知道的JS(二) 闭包及应用
- JS 闭包应用
- js closure js 闭包的应用
- JS原型及闭包应用--通用的删除操作需要密码确认
- JS 循环li添加点击事件 (闭包的应用)
- 前端开发必须知道的JS(一)闭包及应用
- 前端开发必须知道的JS闭包及应用
- Javascript 理解 js闭包 应用
- 前端开发必须知道的JS之闭包及应用
- 20130717 js中setTimeout的闭包的应用