zoukankan      html  css  js  c++  java
  • 闭包

    闭包

    一、是什么

    闭包是指有权访问另一个函数作用域中的变量的函数。

    function bibao(name) {
        return () => {
           console.log(`Hi! ${name}`)
        }
    }
    const test = bibao('zhangsan')
    test() // Hi! zhangsan

    虽然bibao函数已经执行完毕,但是其活动对象也不会被销毁,因为test函数仍然引用着bibao函数中的变量name,这就是闭包。

    缺点:但也因为闭包引用着另一个函数的变量,导致另一个函数即使不使用了也无法销毁,所以闭包使用过多,会占用较多的内存,这也是一个副作用。

    二、作用:利用闭包实现私有属性

    const test = (function () {
        let value = 0
        return {
            getVal() { return value },
            setVal(val) { value = val }
        } 
    })()

    上面代码实现了一个私有属性 value,它只能用过 getVal() 来取值,通过 setVal(val) 来设置值。

  • 相关阅读:
    gan研究思路
    官方文档的学习
    构建Pytorch虚拟环境
    桌面显示【我的电脑】
    【VUE】计数器模块
    【品优购】字体图标定位的做法
    029垃圾分代回收机制
    03特殊for语句
    28包 package
    jdk特性
  • 原文地址:https://www.cnblogs.com/LcxWeb/p/14164512.html
Copyright © 2011-2022 走看看