對于前端人員面試,出現(xiàn)頻率最多也是讓人最頭疼的就是面試官說:“請簡單談一談你對閉包的理解”。對于這一個幾乎快被人問爛的問題,屢屢出現(xiàn)在我們面試或被面試的過程中的原因很簡單--我們一直都在接觸閉包,卻很少去正確地對待它。

因?yàn)殚]包是因?yàn)镴S的一些語言特性而形成的,所以在談它之前我們首先要了解一下的知識點(diǎn)

1.執(zhí)行上下文
2.作用域
3.垃圾回收機(jī)制
4.函數(shù)嵌套

本文只會簡單的談涉及到的內(nèi)容,如果知識點(diǎn)有遺漏的同學(xué)可以自行g(shù)oogle,接下來讓我們進(jìn)入正題!

1. 什么是閉包?

關(guān)于什么是閉包讓我們先看看《高級程序設(shè)計》和《JavaScript權(quán)威指南》中的說法:

《高程》: 閉包是指有權(quán)訪問另一個函數(shù)作用域中的變量的函數(shù),創(chuàng)建閉包的常見方式,就是在一個函數(shù)內(nèi)部創(chuàng)建另一個函數(shù)。

網(wǎng)友評論