闭包案例产生多个相同的随机数
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Document</title>
<script>
function showRandom(){
var num = parseInt(Math.random()*10+1);
console.log(num);
}
// showRandom();
// showRandom();
// showRandom();
// 闭包的方式,产生三个随机数,但是都是相同的
function f1(){
var num = parseInt(Math.random()*10+1);
return function(){
console.log(num);
return num;
}
}
var ff = f1();
console.log(ff());
console.log(ff());
// 总结:如果想要缓存数据,就把这个数据放在外层的函数和里层的函数的中间位置
// 闭包的作用:缓存数据.有点也是缺点,没有及时的释放
// 局部变量是在函数中,函数使用结束后,局部变量就会被自动的释放
// 闭包后,里面的局部变量的使用作用域链就会被延长
</script>
</head>
<body>
</body>
</html>
沙箱
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Document</title>
<script>
// 沙箱:环境,黑盒,在一个虚拟的环境中模拟真实世界,做实验,实验结果和真实结果
// 是一样的,但是不会影响真实世界
// var num = 10;
// console.log(num+10);
// 沙箱----小环境
// (function(){
// var num = 10;
// console.log(num);
// })();
// // 沙箱----小环境
// (function(){
// var num = 20;
// console.log(num+10);
// }());
var num = 100;
(function(){
var num = 10;
console.log(num);
}());
console.log(num);
</script>
</head>
<body>
</body>
</html>