<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>Title</title> </head> <body> </body> <script type="text/javascript"> { let j; for(j=0;j<10;j++){ let i=j; console.log(i); } } //一个简单的闭包作用域考察 function foo() { var b=a*2; function bar(c) { console.log(a,b,c); } bar(b*3); } foo(2);// 2 4 12 //先后顺序并不一定靠谱 a=2; var a; console.log(a); //闭包的demo function foo() { var a=2; function bar() { console.log(a); } return bar(); } var baz=foo(); // 循环和闭包 for(var i=1;i<=5;i++){ (function () { setTimeout(function timer() { console.log(i); },i*1000) })(); } //调整让上面的循环和闭包能正常工作 for(var i=1;i<=5;i++){ (function (j) { setTimeout(function timer() { console.log(j); },j*1000) })(i); } //我们换成let来实现一次 for(let i=1;i<=5;i++){ setTimeout(function timer() { console.log(i); },i*1000) } </script> </html>
时间: 2024-08-01 22:41:57