(原创)JS闭包看代码理解

复制代码
<html xmlns="http://www.w3.org/1999/xhtml">
    <head>
        <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
        <title>JS闭包</title>    
        <script type="text/javascript" src="js/jquery-1.10.2.min.js"></script>
        
        <script type="text/javascript">
            
            $(document).ready(function(){
                
                alert("JS闭包的作用开始了!!!");
                
                var a = aa();
                
                a();
                
                addNum();
                
                a();
                
                addNum();
                
                a();
            });
            
            
            function aa() {
                var n = 100;
                
                addNum = function() {
                            n++;
                        }
                
                function bb() {
                    alert(n)
                }
                return bb;        
            }
            
            function showNum() {
                var show = aa();
                show();
            }
            
            
            function noClosure() {
            
                alert("看下去就知道区别了!!!");
                
                showNumber();
                
                addNum();
                
                showNumber();
            }
            
            function showNumber() {
                var n = 999;
                
                addNum = function() {
                            n++;
                            alert(n)
                        }    
                alert(n);
            }
            
        </script>
    </head>
    <body>
    
        JS闭包(闭包就是能够读取其他函数内部变量的函数):
            <br />
        <input type="button" value="点我" onclick="showNum();" />
        
        <input type="button" value="无闭包" onclick="noClosure();" />

    </body>
</html>
复制代码

 

用简单的代码教你理解JS闭包,js闭包简单说就是能够读取到函数内部变量值的函数,并且使这些变量始终保存在内存中

 

不要停留在羡慕别人代码的层次上,因为不试试,你怎么知道你也可以让别人羡慕的呢???

 

posted @   Answer.AI.L  阅读(343)  评论(0编辑  收藏  举报
编辑推荐:
· go语言实现终端里的倒计时
· 如何编写易于单元测试的代码
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
阅读排行:
· 周边上新:园子的第一款马克杯温暖上架
· Open-Sora 2.0 重磅开源!
· 分享 3 个 .NET 开源的文件压缩处理库,助力快速实现文件压缩解压功能!
· Ollama——大语言模型本地部署的极速利器
· DeepSeek如何颠覆传统软件测试?测试工程师会被淘汰吗?
点击右上角即可分享
微信分享提示