资讯专栏INFORMATION COLUMN

闭包知识总汇

learning / 2586人阅读

摘要:什么是闭包有权限访问,另一个函数中的变量,的函数。创建方法在一函数内部创建另外一个函数。链式作用域结构,子对象会一级一级地向上寻找所有父对象的变量。注意因为闭包会携带,包含,它的,函数的作用域。相比其他函数会更占用内存。

什么是闭包?
1、有权限访问,另一个函数中的变量,的函数。
2、创建方法:在一函数内部创建另外一个函数。
3、链式作用域"结构(chain scope),子对象会一级一级地向上寻找所有父对象的变量。所以,父对象的所有变量,对子对象都是可见的,反之则不成立。
4、作用:读取函数内部的变量;让这些内部变量的值始终保存在内存中。
5、注意:因为闭包会携带,包含,它的,函数的作用域。相比其他函数会更占用内存。

具体方式:

一、
             var lis=document.getElementsByTagName("li");
             for (var i = 0; i <=lis.length; i++) {
                lis[i].onclick = function(){
                     alert(i);
                }
             };
二、
            var lis=document.getElementsByTagName("li");
            for (var i = 0; i <=lis.length; i++) {
               (function(i){
                   lis[i].onclick=function(){
                       alert(i)
                   }
               })(i)
            };

三、

            var lis=document.getElementsByTagName("li");
            for (var i = 0; i <=lis.length; i++) {
                lis[i].onclick=function(n){
                    return function(){
                        alert(n)
                    }
                }(i)
            };

四、

            $("ul li").click(function(){
                var index=$(this).index();
                alert($(this).html());
            })

深入理解:

            var name = "The Window";
            
              var object = {
                name : "My Object",
            
                getNameFunc : function(){
                  return function(){
                    return this.name;
                  };
            
                }
            
              };
            
              alert(object.getNameFunc()());
            
            
              var name = "The Window";
            
              var object = {
                name : "My Object",
            
                getNameFunc : function(){
                  var that = this;
                  return function(){
                    return that.name;
                  };
            
                }
            
              };
            
              alert(object.getNameFunc()());

文章版权归作者所有,未经允许请勿转载,若此文章存在违规行为,您可以联系管理员删除。

转载请注明本文地址:https://www.ucloud.cn/yun/88179.html

相关文章

  • ES6知识拾遗,再读ES6入门书籍总汇

    摘要:冻结对象未定义就声明的变量会默认为全局的变量,的变量都归所有,命令命令命令声明的全局变量,不属于顶层对象的属性即不会归所有总结的六种声明变量注意在浏览器环境指的是对象,在指的是对象。参数搭配的变量是一个数组,该变量将多余的参数放入数组中。 1.var,let,const区别 答:(1).var有变量声明提升,let&&const没有,这样导致了let,const必须声明后才可以访问...

    thekingisalwaysluc 评论0 收藏0
  • 全球化趋势明显 2016全球云计算市场发展情况总汇

    摘要:今年的云计算市场全球化趋势明显。阿里云到目前为止在全球一共布置了个超大规模数据中心。亚马逊微软甲骨文等终于今年正式登陆中国市场。根据调查显示,当前云市场面临的较大挑战是缺乏资源和专业知识。 今年的云计算市场全球化趋势明显。阿里云到目前为止在全球一共布置了14个超大规模数据中心。腾讯云紧随其后在海外已经开放香港、新加坡、多伦多等3大海外数据中心。亚马逊、微软、甲骨文等终于今年正式登陆中国市场。...

    陈伟 评论0 收藏0
  • HTML无刷新下载文件方法总汇

    摘要:首先要保证有一个后台可以下载文件的方法,这里只总结前端解决方法,所以不对后台做分析,假设现在有一个下载文件的方法。使用属性使用使用版本版本调用点击下载个人推荐第种方法,比较灵活。 首先要保证有一个后台可以下载文件的方法,这里只总结前端解决方法,所以不对后台做分析,假设现在有一个下载文件的方法/project/download.action。如果不想通过后台直接下载可以看我的另一篇文章《...

    chavesgu 评论0 收藏0
  • 平时积累的前端资源,持续更新中。。。

    本文收集学习过程中使用到的资源。 持续更新中…… 项目地址 https://github.com/abc-club/f... 目录 vue react react-native Weex typescript Taro nodejs 常用库 css js es6 移动端 微信公众号 小程序 webpack GraphQL 性能与监控 高质文章 趋势 动效 数据结构与算法 js core 代码规范...

    acrazing 评论0 收藏0
  • HTML和CSS前端教程03-CSS选择器

    摘要:目录定义创建的三种方法元素内嵌权重最高文档内嵌外部引用层叠和继承浏览器样式样式表层叠样式继承选择器选择器的总汇基本选择器复合选择器伪元素选择器伪类选择器定义定义层叠样式表创建的三种方法创建的三种方法元素内嵌权重最高元素内嵌权重最高文档内目录 1. CSS定义 2. 创建CSS的三种方法 2.1. 元素内嵌(权重最高)...

    PingCAP 评论0 收藏0

发表评论

0条评论

最新活动
阅读需要支付1元查看
<