匿名函数

(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();
}
}

javascript匿名函数 闭包的更多相关文章

  1. 第一百一十节,JavaScript匿名函数和闭包

    JavaScript匿名函数和闭包 学习要点: 1.匿名函数 2.闭包 匿名函数就是没有名字的函数,闭包是可访问一个函数作用域里变量的函数.声明:本节内容需要有面向对象和少量设计模式基础,否则无法听懂 ...

  2. javascript 匿名函数的理解(转)

    原网址 http://www.jb51.net/article/21948.htm javascript 匿名函数的理解(透彻版) 代码如下: (function(){ //这里忽略jQuery所有实 ...

  3. 速战速决 (3) - PHP: 函数基础, 函数参数, 函数返回值, 可变函数, 匿名函数, 闭包函数, 回调函数

    [源码下载] 速战速决 (3) - PHP: 函数基础, 函数参数, 函数返回值, 可变函数, 匿名函数, 闭包函数, 回调函数 作者:webabcd 介绍速战速决 之 PHP 函数基础 函数参数 函 ...

  4. (转)Javascript匿名函数的写法、传参、递归

    (原)http://www.veryhuo.com/a/view/37529.html (转)javascript匿名函数的写法.传参和递归 javascript匿名函数的写法.传参和递归 http: ...

  5. (转)javascript匿名函数的写法、传参和递归

    (原)http://www.veryhuo.com/a/view/37529.html (转)javascript匿名函数的写法.传参和递归 http://www.veryhuo.com 2011-0 ...

  6. JavaScript匿名函数的使用

    JavaScript匿名函数的使用:  http://www.cnblogs.com/skykang/archive/2010/12/03/1895274.html 一.什么是匿名函数? 在Javas ...

  7. [从jQuery看JavaScript]-匿名函数与闭包(Anonymous Function and Closure)【转】

    (function(){ //这里忽略jQuery所有实现 })(); 半年前初次接触jQuery的时候,我也像其他人一样很兴奋地想看看源码是什么样的.然而,在看到源码的第一眼,我就迷糊了.为什么只有 ...

  8. 浅谈JavaScript匿名函数与闭包

    一. 匿名函数   //普通函数定义: //单独的匿名函数是无法运行的.就算运行了,也无法调用,因为没有名称. 如: function(){             alert('123');    ...

  9. 深入理解javascript 匿名函数和闭包

    代码如下: (function(){ //这里忽略jQuery所有实现 })(); (function(){ //这里忽略jQuery所有实现 })();  半年前初次接触jQuery的时候,我也像其 ...

随机推荐

  1. Java内存管理:Java内存区域 JVM运行时数据区

    转自:https://blog.csdn.net/tjiyu/article/details/53915869 下面我们详细了解Java内存区域:先说明JVM规范定义的JVM运行时分配的数据区有哪些, ...

  2. 【jquery采坑】Ajax配合form的submit提交(微擎表单提交,ajax验证,submit提交)

    1.采坑:实现form的submit提交,在提交之前,进行ajax的不同校验,然后onsubmit=return check(),进行提交 1/1 目的:可以实现以 from的submit提交,然后还 ...

  3. iOS开发之资料收集

    github排名:https://github.com/trending, github搜索:https://github.com/search. 此文章转自github:https://github ...

  4. [svc]容器网络学习索引及网络监控

    整理的可能有些误失,抽时间在细细的分类完善下. 发现这篇对于网络从低到高层协议整理的还不错 每层都有一些有意思的话题 一些协议有一些设计上的弱点, 所以产生了种种的网络层安全问题 一般我们学一些 1, ...

  5. (转) 开运算opening_circle和闭运算closing_circle的异同

    从去除毛刺的策略看开运算opening_circle和闭运算closing_circle的异同 例一:毛刺在往外凸的面上 策略1:分割出黑色部分,然后通过开运算去掉毛刺,再通过原黑色部分区域减去开运算 ...

  6. quartz与spring boot-最简模式

    多年前使用过quartz,今天又需要再用,而且是在spring boot框架下.很神奇,spring也是十年前用过的. 这里仅记录下完成的最快速和简单的操作,高级的使用以后有空弄明白了再写: 1.增加 ...

  7. java把一个list分割成多个list存入map中(实例)

    这都是最近我写工具遇到的一些点, 这些点就是指我在网上没搜到答案,然后实际上我为此花费了时间的 public static void main(String[] args) { List<Str ...

  8. jq 日期区间处理

    <html lang="en"><head> <meta charset="UTF-8"> <title>Tit ...

  9. Vue之初识Vue

    前言 如果你之前已经习惯了用jQuery操作DOM,学习Vue.js时请先抛开手动操作DOM的思维, 因为Vue.js是数据驱动的,你无需手动操作DOM.它通过一些特殊的HTML语法,将DOM和 数据 ...

  10. 查询表DML和DDL操作的最后时间

    查询test表DML操作的最后时间的语句: select max(ora_rowscn),to_char(scn_to_timestamp(max(ora_rowscn)),'yyyy-mm-dd h ...