您的位置:首页 > 科技 > IT业 > 网页界面模板下载_深圳建站科技有限公司_营销排名seo_搜狐视频

网页界面模板下载_深圳建站科技有限公司_营销排名seo_搜狐视频

2025/4/23 5:52:33 来源:https://blog.csdn.net/xinbaiyu/article/details/147233666  浏览:    关键词:网页界面模板下载_深圳建站科技有限公司_营销排名seo_搜狐视频
网页界面模板下载_深圳建站科技有限公司_营销排名seo_搜狐视频

闭包介绍

使用闭包:

  1. 在函数内声明一个变量,避免外部访问
  2. 在该函数内再声明一个函数访问上述变量(闭包)
  3. 返回函数内部的函数
  4. 使用完毕建议闭包函数=null;译放内存
function createCounter() {let count = 0;return function () {count++;return count;};
}let counter = createCounter();
console.log(counter()); // 1
console.log(counter()); // 2
console.log(counter()); // 3
counter = null;

闭包应用场景

在 ES6 引入 let 和 const 之前,JavaScript 没有块级作用域,只有函数作用域。可以使用闭包来模拟块级作用域。以下是一个经典的循环中使用闭包的例子:

// 不使用闭包的情况
function printNumbersWithoutClosure() {for (var i = 0; i < 5; i++) {setTimeout(function () {console.log(i);}, i * 1000);}
}// 使用闭包的情况
function printNumbersWithClosure() {for (var i = 0; i < 5; i++) {(function (index) {setTimeout(function () {console.log(index);}, index * 1000);})(i);}
}// 测试不使用闭包的情况
console.log('不使用闭包的情况:');
printNumbersWithoutClosure();// 测试使用闭包的情况
setTimeout(function () {console.log('使用闭包的情况:');printNumbersWithClosure();
}, 5000);

在这里插入图片描述

版权声明:

本网仅为发布的内容提供存储空间,不对发表、转载的内容提供任何形式的保证。凡本网注明“来源:XXX网络”的作品,均转载自其它媒体,著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处。

我们尊重并感谢每一位作者,均已注明文章来源和作者。如因作品内容、版权或其它问题,请及时与我们联系,联系邮箱:809451989@qq.com,投稿邮箱:809451989@qq.com