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

闭包

Dettan
2022-01-09 / 0 评论 / 0 点赞 / 42 阅读 / 915 字
温馨提示:
本文最后更新于 2022-04-30,若内容或图片失效,请留言反馈。部分素材来自网络,若不小心影响到您的利益,请联系我们删除。
/ 前端 / 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
            <div style="color: inherit; fill: inherit;">
                <div style="display: flex;">


检测滚动方向,闭包保证变量不污染外部
(function () {
    var previousScroll = 0;
$(window).scroll(function(){
   var currentScroll = $(this).scrollTop();
   if (currentScroll &gt; previousScroll){
       alert('down');
   } else {
      alert('up');
   }
   previousScroll = currentScroll;
});

}()); //run this anonymous function immediately




0

评论区