JS闭包原理及其使用场景解析
2020-12-09 04:07
1071 查看
闭包定义
可以通过内层函数访问外层函数的作用域的组合叫做闭包。
闭包使用场景
使用闭包来实现防抖
function debounce(callback, time) { var timer; return function () { if (timer) { clearTimeout(timer) } timer = setTimeout(() => { callback() }, time) } }<br data-filtered="filtered"><br data-filtered="filtered">window.onresize = debounce(() => {console.log(666)},500)
使用闭包设计单例模式
class Car{ constructor(color){ this.color = color } } var proxy = (function createCar() { var instance; return function (color) { if (!instance) { instance = new Car(color) } return instance } })() var car = proxy('white')
使用闭包遍历取索引值(古老的问题)
for (var i = 0; i < 10; i++) { setTimeout(function(){console.log(i)},0) //10个10 } for (var i = 0; i < 10; i++) { (function(j){ setTimeout(function(){console.log(j)},0) // 0 - 9 })(i) }
闭包性能
因为闭包会使外层函数作用域中的变量被保存在内存中不被回收,所以如果滥用闭包就会导致性能问题,谨记。
以上就是本文的全部内容,希望对大家的学习有所帮助
您可能感兴趣的文章:相关文章推荐
- Struts2框架使用及原理及其拦截器解析
- Vue原理解析(九):搞懂computed和watch原理,减少使用场景思考时间
- Java 并发编程:volatile的使用及其原理解析
- Redis深入之道:原理解析、场景使用以及视频解读
- 事件委托在哪些场景中使用,该如何使用,及其实现原理?
- xml文件的概述与应用场景 xml文件的组成部分&如何编写xml xml的两种解析方式的原理 Dom4J开源工具的使用
- PostgreSQL逻辑备份pg_dump使用及其原理解析
- 原生JS--函数(function)最全分类及其使用场景
- PostgreSQL逻辑备份pg_dump使用及其原理解析
- OkHttp3使用解析:实现下载进度的监听及其原理简析
- Android性能优化:Volley使用及其原理解析
- Node.js使用的场景 (翻译自Node.js早期贡献者Felix的文章)
- C++ 之 高效使用STL(泛型算法设计原理解析)
- js、html中的单引号、双引号及其转义使用
- DNS原理及其解析过程精彩剖析
- Asp.net 2.0 自定义控件开发专题[详细探讨页面状态(视图状态和控件状态)机制及其使用场景](示例代码下载)
- Asp.net 2.0 自定义控件开发专题[详细探讨页面状态(视图状态和控件状态)机制及其使用场景](示例代码下载)
- Ext.data库中几个常用类的原理及其使用 (转)
- JS闭包可被利用的常见场景
- 使用js解析xml文档和xml字符串(ie和火狐)