博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
javascript的闭包的形成
阅读量:6245 次
发布时间:2019-06-22

本文共 1393 字,大约阅读时间需要 4 分钟。

//例子1          var a = 10086;        function f1() {            alert(a);        }        f1(); //999    //例子2:函数内部变量声明的时候,必须要用var  否则实际是声明了一个全局变量         function f2() {            var b = 10086;        }        f2();        alert(b); //errer :b为定义               //例子3:例如c为全局变量         function f3() {            c = 10086;        }        f3();        alert(c);//        //==========================        //例子2情况 我们需要访问b的值的时候怎么办呢        //这个时候f4内的所有变量对于getd都是可见的,但getd中的变量对f4却不可见 ,这样我们的f4函数就形成了闭包了。       //例子4         function f4() {            var d = 10000;            function getd() {                 alert(d);            }            return getd();        }        //        闭包的定义:简单的可以理解为定义在函数内部的函数//        闭包的用途:读取函数内部的变量,让变量的值保持在内存中 //例子5        function f5() {            var n = 100086;            Add = function () { n += 1 };            function getn() {                alert(n);            }            return getn;        }       //这样调用的时候不会出现闭包的情况          f5();//这里输出10086        Add();        f5();//10086        //用fun变量,形成闭包        var fun = f5();//使用fun指向getn        fun();        Add();        fun();        //当执行 var fun=f5() 时,变量fun实际指向了函数getn,getn中用到了变量n        //当函数f5内部的函数getn被函数a外部变量引用的时候,就创建了一个闭包         //闭包的作用:在a执行完后并返回,闭包由于变量n被外部引用,导致资源不会被回收,所以n始终存在,如果我们返回的不是getn,那么n的值不会被调用,就会被回收

 

参考文章

    

转载于:https://www.cnblogs.com/ac1985482/archive/2013/03/13/2957719.html

你可能感兴趣的文章
SQL Server远程备份报错:Operating system error 1326
查看>>
域名转移和域名DNS修改
查看>>
域名查找及错误检查
查看>>
JavaScript 字符串处理详解
查看>>
Linux 查看系统硬件信息(实例详解)
查看>>
Linux系统开发8 线程
查看>>
我的友情链接
查看>>
linux安装过程对硬盘进行分区
查看>>
linux安装eclipse集成开发环境
查看>>
像少年啦飞驰
查看>>
Advanced+Apple+Debugging(1)
查看>>
EIGRP实验 3 :EIGRP 拓扑、路由以及汇聚
查看>>
我的友情链接
查看>>
计算网速
查看>>
jdk8中HashMap的优化和底层内存的优化
查看>>
js中bind、call、apply函数的用法
查看>>
PHP集群中SESSION共享方案之Redis
查看>>
KVM虚拟化开源高可用方案(三)glusterfs
查看>>
linux中date的用法总结
查看>>
在互联网时代不突破的企业将没有出路
查看>>