闭包

来源:互联网 发布:投行工作做什么 知乎 编辑:程序博客网 时间:2024/06/05 06:30

先来看一个题目例子,我将在下一环节出闭包讲解。。

题目描述

实现函数 makeClosures,调用之后满足如下条件:
1、返回一个函数数组 result,长度与 arr 相同
2、运行 result 中第 i 个函数,即 result[i](),结果与 fn(arr[i]) 相同

输入

[1, 2, 3], function (x) { return x * x; }

输出

4

题目读起来第一遍都够让我百般寻味了::先参考下边答案我会细细讲来

function makeClosures(arr, fn) {
var result = [];
    arr.forEach(function(ele){
        result.push(function(num){
            return function(){
                return fn(num)
            };
        }(ele));
    });
    return result;
}





原创粉丝点击