zoukankan      html  css  js  c++  java
  • 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)
        }

  • 相关阅读:
    老陈与小石头运算代码
    第五次作业
    老陈与小石头
    简易四则运算
    四则运算
    对git的认识
    第一次作业
    arcgis-tomcat-cors
    jquery deferred promise
    springloaded hot deploy
  • 原文地址:https://www.cnblogs.com/zlf1914/p/13064638.html
Copyright © 2011-2022 走看看