匿名函数

(function(){
                console.info("111111111");
            })();

var my = (function(){
                return "11111111";
            })();

函数里放匿名函数叫闭包

function my(){
                return function(){
                    return "张三";
                }
            }
            
            console.info(my()());

闭包的优点,避免使用全局变量,提供访问局部变量

//把局部变量保存起来
            
            function box(){
                var age = 100;
                
                return function(){
                    age++;
                    return age;
                }
                
            }
            
            var b = box();
            b();
            b();
            b();

function box1 (){
                
                var arr = [];
                
                for(var i=0;i<5;i++){
                    arr[i] = (function (num){
                        return num;
                    })(i)
                    
                }
                return arr;
                
            }

var my = function(){
                return "11111111";
            }();

闭包在全局是指向window,

var name ="全局";
            var user ={
                name:"张三",
                getUser:function(){
                    var that = this;
                    return function(){
                        return that.name;//返回user对象的属性,而不是全局
                    }
                }
            }

块级作用域,(function(){

})();

           function box(){

                var arr = [];

                for (var i=0;i<5;i++) {

                    arr[i] = (function(num){
//有时arr[i] 需要经过函数复杂计算,闭包的用处
return num; })(i); }
return arr; }

闭包this指向window

            var name = "window";
var box = {
name:"box",
getName: function(){
//这里的作用域指向box
var that = this;
return function(){
//这里的作用域指向window
return that.name;
}
}
} alert(box.getName()());
           var name1 = "1212";
(function(){
var name1 = "张三"
alert(this.name1);//指向window })();

//块级作用域,变成私有作用域

           function Box(){
var name = "张三";//私有变量外部无法访问
function eat(){//私有方法外部无法访问
return "吃饭";
}
this.run = function(){//公有方法共外部调用
return name +eat();
}
}

最新文章

  1. jQuery fsBanner 手风琴
  2. 什么是XA事务
  3. php基础之gd图像生成、缩放、logo水印和简单验证码实现
  4. 奥迪--Q3
  5. How Do I Declare A Block in Objective-C?
  6. 关于Log4j的初始化
  7. android 4.3源码编译
  8. iOS NSData简单解析
  9. 转:Ubuntu12.04 LTS 使用心得-开机挂载其他分区
  10. POJ 1755 Triathlon
  11. OpenCV视屏跟踪
  12. 三种预处理器px2rem
  13. python学习之爬虫(一) ——————爬取网易云歌词
  14. 手机端 图片的移动缩放旋转兼容touch
  15. bzoj 3571: [Hnoi2014]画框
  16. Bootstrap中关闭第二个模态框时出现的问题和解决办法
  17. 【转】mysql数据库优化大全
  18. Cocos Creator (webgl模式下怎么让canvas背景透明)
  19. WatchDirService 实时监控
  20. tomcat 内存溢出处理方案

热门文章

  1. 【C++】C++中的引用与指针
  2. 存货控制中的ABC分类释义
  3. 小米Pro 安装苹果系统
  4. james2.3 配置收件 之 MariaDB数据库配置
  5. C语言 &#183; 礼物盒
  6. [转]剑指offer之Java源代码
  7. Glide和Govendor安装和使用
  8. ZOJ 3886 Nico Number(筛素数+Love(线)Live(段)树)
  9. AT&amp;T汇编指令
  10. git log --pretty=format:&quot; &quot;