1
var arr1 = [];
        for (var i=0;i<3;i++) {
            arr1[i] = function(){
                console.log(i);
            };
        }
        arr1[0]();
        arr1[1]();
        arr1[2]();

Please tell me how to get 1 2 3?Thank you.

1 Answers1

0

You can use a closure for this task.

var arr1 = [];
for (var i = 0; i < 3; i++) {
    arr1[i] = function(i) {
        return function() {
            document.write(i + '<br>');
        };
    }(i);
}
arr1[0]();
arr1[1]();
arr1[2]();
Nina Scholz
  • 376,160
  • 25
  • 347
  • 392