侧边栏壁纸
  • 累计撰写 793 篇文章
  • 累计创建 1 个标签
  • 累计收到 1 条评论
标签搜索

目 录CONTENT

文章目录

闭包

Dettan
2022-01-09 / 0 评论 / 0 点赞 / 115 阅读 / 210 字
温馨提示:
本文最后更新于 2022-07-23,若内容或图片失效,请留言反馈。部分素材来自网络,若不小心影响到您的利益,请联系我们删除。
/ 前端 / JS / 闭包
闭包中的变量一直在内存中,闭包内的函数被调用时先独到的变量是闭包里的
代码片段一。
var name = "The Window";

var object = {
  name : "My Object",

  getNameFunc : function(){
    return function(){
      return this.name;
    };
  }
};

alert(object.getNameFunc()()); // The Window
代码片段二。
var name = "The Window";

var object = {
  name : "My Object",

  getNameFunc : function(){
    var that = this;
    return function(){
      return that.name;
    };
  }
};

alert(object.getNameFunc()()); // My Object
(function(){
  var n=999;
  nAdd=function(){n+=1}
  print = function(){alert(n)}
})()
print (); // 999
nAdd();
print (); // 1000


检测滚动方向,闭包保证变量不污染外部
(function () {
    var previousScroll = 0;

    $(window).scroll(function(){
       var currentScroll = $(this).scrollTop();
       if (currentScroll > previousScroll){
           alert('down');
       } else {
          alert('up');
       }
       previousScroll = currentScroll;
    });
}()); //run this anonymous function immediately

0

评论区