一个基本的面试问题:可以解释一下什么是闭包吗?
云栖号:https://yqh.aliyun.com第一手的上云资讯,不同行业精选的上云企业案例库,基于众多成功案例萃取而成的最佳实践,助力您上云决策! 面对面试问题,我们总是如临大敌。 令人憎恶的面试问题 之前,我参加了一个面试,其中工程团队要求我解释闭包的含义。当然,这不是我第一次被问到这个术语,但老实说,我还是有些慌张。 众所周知,闭包这个术语因难以定义而臭名昭著。 面试后,我对自己仍恐惧这个问题感到沮丧。我下定决心,要彻底弄明白闭包的含义。本篇博客将带领大家来看看我的经历。 匿名函数和IIFE不是闭包 文章开始前,我先阐明不会涉及的内容。在ES6之前的时代,闭包的常见用例是用于模仿私有方法的匿名函数/ IIFE(立即调用函数表达式),这些方法不是JavaScript所特有的。 通过在ES6中引入let 、const的引入和以及模块,很大程度上解决了var 的局限性所导致的这种情况和其他类似的用例。IIFE包括闭包,但不是闭包。 匿名函数也不是闭包。 anonymousFunc !== closure&& IIFE !== closure // true 学习这些...