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

本文共 1323 字,大约阅读时间需要 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的值不会被调用,就会被回收

 

参考文章

    

转载地址:http://sxuna.baihongyu.com/

你可能感兴趣的文章
[模拟电路] 1、模拟调制、解调电路原理
查看>>
Android Nine Patch图片及按钮背景
查看>>
在.NET中调用Oracle9i存储过程经验总结
查看>>
Eclipse崩溃后无法启动的问题解决
查看>>
Android Studio git ignore
查看>>
springmvc
查看>>
22.2. 用户认证
查看>>
1.7. User interfaces
查看>>
阿里Druid数据连接池在SSM框架中的配置使用
查看>>
基于Metronic的Bootstrap开发框架经验总结(17)-- 使用 summernote插件实现HTML文档的编辑和图片插入操作...
查看>>
Linux虚拟主机通过程序实现二级域名绑定到子目录
查看>>
7.12. cvs diff
查看>>
Android酷炫实用的开源框架(UI框架)
查看>>
Winform开发框架之对话框样式同化
查看>>
一脸懵逼学习Linux的Shell编程
查看>>
Jmeter调试工具---Debug Sampler
查看>>
[裴礼文数学分析中的典型问题与方法习题参考解答]4.5.14
查看>>
impdp的TABLE_EXISTS_ACTION参数选项
查看>>
机器学习之深入理解神经网络理论基础、BP算法及其Python实现
查看>>
ecshop设置一个子类对应多个父类并指定跳转url的修改方法
查看>>