39-使用闭包【牛客网-在线编程-前端篇】
一、题目描述
实现函数 makeClosures,调用之后满足如下条件:
- 返回一个函数数组 result,长度与 arr 相同
- 运行 result 中第 i 个函数,即 resulti,结果与
fn(arr[i]) 相同
二、主流的三类参考答案
参考来源:牛客网题目讨论区
1.立即执行函数——即使用更多的闭包
function makeClosures(arr, fn) {
let result = [];
for(var i = 0 ; i < arr.length; i++){
result[i] = (function(a) {
return function(){
return fn(a);}
})(arr[i]);
}
return result;
}
2.let 代替 var——es6新增的“块作用域”的应用
function makeClosures(arr, fn

这篇博客探讨了JavaScript中的闭包概念,包括它的定义、如何形成以及应用场景。通过牛客网的在线编程题为例,讲解了三种常见的闭包实现方式:立即执行函数、使用let代替var以及Array.forEach方法。同时,文章提到了闭包与执行上下文、作用域链、var与let的区别等相关知识点,深入解析了闭包在函数级和块级作用域下的行为,并举例说明了闭包在创建时的具体时机。
最低0.47元/天 解锁文章
1015

被折叠的 条评论
为什么被折叠?



