js闭包

《js闭包》

function createFunctions(){
    var result = new Array();
    for(i = 0; i < 10; i++){
        result[i] = function(){
            return i;
        }
        console.log(i);
    }
    return result;
}
var a = createFunctions();
console.log(typeof a);
console.log(a);

0
1
2
3
4
5
6
7
8
9
object
(10) [function, function, function, function, function, function, function, function, function, function]

function createFunctions(){
    var result = new Array();
    for(var i = 0; i < 10; i++){
        result[i] = function(){
           return i;
        }
    }
    return result;
}
var a = createFunctions();
alert(a);

《js闭包》

你每遍历一次,相当于往数组result里增加一个function,当你挪用createfunctions()这个要领并把它赋值给a时就是将result赋给了a,所以会打印出9个function

    原文作者:mmy
    原文地址: https://segmentfault.com/a/1190000009299613
    本文转自网络文章,转载此文章仅为分享知识,如有侵权,请联系博主进行删除。
点赞