面试题常考&必考之--js闭包特性和优缺点 (外加小例子)

当内部函数被返回到外部并保存时,一定会产生闭包。闭包会产生原来的作用域链,不释放。

闭包,可以理解为,写一个函数,然后产生闭包的这种现象。

概念:

面试题常考&必考之--js闭包特性和优缺点 (外加小例子)_第1张图片

 

 

基础:

面试题常考&必考之--js闭包特性和优缺点 (外加小例子)_第2张图片

主要是:add    reduce  被返回出去后,会死死的抓住test()中的AO(数据n)

 

利用对象的形式

面试题常考&必考之--js闭包特性和优缺点 (外加小例子)_第3张图片

 

 

深度:

面试题常考&必考之--js闭包特性和优缺点 (外加小例子)_第4张图片

 

 但是,我们期望的输出结果是打印(0-9),那么怎么打印出我们期望的呢?

综合上图分析,输出10个10的原因是,在i变成10我们才执行函数,那么如果我们能够立即执行函数,

是不是就可以输出0到9了呢?

法一:

面试题常考&必考之--js闭包特性和优缺点 (外加小例子)_第5张图片

 

法二:

面试题常考&必考之--js闭包特性和优缺点 (外加小例子)_第6张图片

 法三:(最常见最常用的方法)

 

 

 面试题常考&必考之--js闭包特性和优缺点 (外加小例子)_第7张图片

 

 

为了证明法三常用,这里说一个面试题

12345,点击数字后,分别输出他们所对应的下标和索引

 

面试题常考&必考之--js闭包特性和优缺点 (外加小例子)_第8张图片

 

转载于:https://www.cnblogs.com/snowbxb/p/11579569.html

你可能感兴趣的:(面试题常考&必考之--js闭包特性和优缺点 (外加小例子))