js闭包
Posted zlf1914
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了js闭包相关的知识,希望对你有一定的参考价值。
闭包:
1、一个函数嵌套另一个函数
2、内层函数调用外层函数的变量
3、内层函数作为返回值返回给外层函数
闭包代码:
function num(){ let i = 0 return function getNum(){ //内层函数作为返回值返回给外层函数 return ++i //内层函数调用外层函数的变量 } } let n = num() console.log(n())//1 console.log(n())//2 console.log(n())//3
优点:防止变量全局污染,调用数据更加方便
缺点:耗内存,因为每次使用闭包函数都会生成一个独立的,不被销毁的执行空间,存储它的私有变量
闭包案例:
点击每个li都会打印出它对应的下标
js代码:
const list = document.querySelectorAll(‘ul li‘) for(let i = 0;i<list.length;i++){ list[i].onclick = ((index)=>{ return ()=>{ console.log(index) } })(i) }
以上是关于js闭包的主要内容,如果未能解决你的问题,请参考以下文章