闭包

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

题目描述

实现函数 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;
}





你可能感兴趣的:(js泡一泡,闭包)