zoukankan      html  css  js  c++  java
  • 【js】关于闭包和匿名函数

    关于js闭包。之前我一直以为是匿名函数,以为封闭式的创建即执行销毁就是闭包,其实这是匿名函数,不一样的。也没有闭包的使用经验。

    后来去网上查了下才知道,闭包的意思是:函数内部还有函数,返回一个函数,内部函数可访问外部函数的变量

    一个最简单的案例:

    a是外部函数,b是内部函数,b可以使用a的变量i,调用a函数返回b函数,执行c既是执行b。其实也就意味着在a函数的外部,读取到了a函数内部的变量值。

    a中的变量i将一直在内存中,直至c变量删除。

    删除变量:delete c;

    obj.geta()输出2,this代表当前对象。而闭包(内部函数)中的this代表window,这里为什么不输出1呢?因为这个a是let声明赋值的,不会传给window。

    return function是直接返回一个匿名函数

    用这种方式就可以了,外部将this赋值给一个新变量,再给闭包

  • 相关阅读:
    新的一周了
    一篇感人的文章!
    bit流中统计1的个数
    TASK_KILLABLE
    modutils及LKM分析小记[2]
    __asm__ __volatile__("": : :"memory")
    内核同步小记
    进程劫持
    加载内核模块
    missing separator
  • 原文地址:https://www.cnblogs.com/wuhairui/p/10488244.html
Copyright © 2011-2022 走看看