资讯专栏INFORMATION COLUMN

闭包

张巨伟 / 1624人阅读

常见使用
 var Zepto_me = (function(){
          var $ = function(){alert(1212)};
          $.isWindow = function(obj){return obj!=null && obj == window};
          return $;
      })();
      window.Zepto_me = Zepto_me;
      window.$ === undefined && (window.$ = Zepto_me);
      $().isWindow(window);

局部变量的累加
function foo(x){
        var a = x;
        return function(){
            alert(a++);
        };
     };
     var f = foo(1);
     f();// 1
     f();// 2
分流的那个函数可以使用原来函数的变量
(function(i){
         var a = i;
         (function(){
            alert(a);
         }());
     }(1));
var name = "the window";
     var object = {

         name : "the object",
         getName : function(){
            name = this.name;
            return function(){//执行这个分流函数的是window对象,所以当前this表示的是window
                return this.name;//the window
                return name;//the object
            }


         }

     } 
     alert(object.getName()());
寻找变量的路径
var a =33;
     function foo(x){
        // var a = x;
        return function(){
            alert(a++);//会先从当前函数域中寻找,在从foo函数域中寻找,在从window中寻找
        };
     };
     var f = foo(1);
     window.f();
     window.f();
常见
 var Zepto_me = (function(){
          function isWindow(obj){ return obj != null && obj == obj.window }
          var $ = function(){};
          $.isWindow = isWindow;//闭包
          return $;//闭包
      })();
      alert(Zepto_me.isWindow(window));//true
总结
闭包就是某个函数在多带带执行期间,可以使用一个变量,这个变量是在别的函数体里面定义的。也就是说变量的使用范围扩大了。

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

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

相关文章

  • JS 中的闭包是什么?

    摘要:大名鼎鼎的闭包面试必问。闭包的作用是什么。看到闭包在哪了吗闭包到底是什么五年前,我也被这个问题困扰,于是去搜了并总结下来。关于闭包的谣言闭包会造成内存泄露错。闭包里面的变量明明就是我们需要的变量,凭什么说是内存泄露这个谣言是如何来的因为。 本文为饥人谷讲师方方原创文章,首发于 前端学习指南。 大名鼎鼎的闭包!面试必问。请用自己的话简述 什么是「闭包」。 「闭包」的作用是什么。 首先...

    Enlightenment 评论0 收藏0
  • 闭包,又见闭包。。。。?

    摘要:完美的闭包,对,闭包就这么简单。这仅仅是闭包的一部分,闭包利用函数作用域达到了访问外层变量的目的。此时一个完整的闭包实现了,的垃圾回收机制由于闭包的存在无法销毁变量。 1.闭包是指有权访问另一个函数作用域中的变量的函数。 上面这段话来自 javascript 高级程序设计 第三版 P178 。作者说闭包是一个函数,它有访问另一个函数作用域中的变量的能力。 2.函数访问它被创建时所处的...

    keelii 评论0 收藏0
  • 多层级理解闭包

    摘要:第二梯队理解有了第一梯队的认识,我们慢慢修正大脑中对闭包的认识。理解这句话就可以很好的与闭包这两个字关联起来理解闭包这个概念了。总结第二梯队理解闭包是一个有特定功能的函数。第四梯队理解闭包通过访问外部变量,一个闭包可以维持这些变量。 闭包 闭包的概念困惑了我很久,记得当时我面试的时候最后一面有一个问题就是问题关于闭包的问题,然而到现在已经完全不记得当时的题目是啥了,但仍然能够回忆起当时...

    nemo 评论0 收藏0
  • 面试官问我:什么是JavaScript闭包,我该如何回答

    摘要:到底什么是闭包这个问题在面试是时候经常都会被问,很多小白一听就懵逼了,不知道如何回答好。上面这么说闭包是一种特殊的对象。闭包的注意事项通常,函数的作用域及其所有变量都会在函数执行结束后被销毁。从而使用闭包模块化代码,减少全局变量的污染。 闭包,有人说它是一种设计理念,有人说所有的函数都是闭包。到底什么是闭包?这个问题在面试是时候经常都会被问,很多小白一听就懵逼了,不知道如何回答好。这个...

    BenCHou 评论0 收藏0

发表评论

0条评论

张巨伟

|高级讲师

TA的文章

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