闭包中变量值的改变

来源:互联网 发布:人工智能的未来下载 编辑:程序博客网 时间:2024/05/22 04:48

1.对于闭包中的变量是怎么回事?

function makeCounter() {    var i = 0;    console.log(i);    return function(){        console.log(++i);        console.log(i);    };   }//记住:`counter`和`counter2`都有他们自己的变量 `i`var counter = makeCounter();counter();//1counter();//2makeCounter();var counter2 = makeCounter();counter2();//1counter2();//2




2.异步执行的顺序是怎样的?

for (var i = 0; i < 5; ++i) {  setTimeout(function () {    console.log(i + ' ');  }, 100);}for (var j = 5; j < 10; ++j) {  setTimeout((function (num) {    console.log(num + ' ');  })(j), 100);}for (var k = 10; k < 15; k++) {(function(num){setTimeout(function () {    console.log(num + ' ');  }, 100);})(k);}for (var n = 15; n < 20; n++) {add(n);}function add(num){setTimeout(function(){console.log(num);});
输出的结果是 5,6,7,8,9,15,16,17,18,19,5,5,5,5,5,10,11,12,13,14

原创粉丝点击