09.常见的闭包.html 1.0 KB

1234567891011121314151617181920212223242526272829303132333435363738394041
  1. <!DOCTYPE html>
  2. <html lang="en">
  3. <head>
  4. <meta charset="UTF-8">
  5. <meta http-equiv="X-UA-Compatible" content="IE=edge">
  6. <meta name="viewport" content="width=device-width, initial-scale=1.0">
  7. <title>Document</title>
  8. </head>
  9. <body>
  10. <!--
  11. 1、将函数作为另一个函数的返回值
  12. 2、将函数作为实参传递给另一个函数调用
  13. -->
  14. <script>
  15. //1、将函数作为另一个函数的返回值
  16. function fn1(){
  17. var a = 2
  18. function fn2(){
  19. a++
  20. console.log(a)
  21. }
  22. return fn2
  23. }
  24. var f = fn1()
  25. f() //3
  26. f() //4
  27. //产生了一个闭包对象
  28. //2、将函数作为实参传递给另一个函数调用
  29. function showDelay(msg,time){
  30. setTimeout(function() {
  31. alert(msg)
  32. }, time);
  33. }
  34. showDelay('abc',2000)
  35. //引用的是msg,不是time
  36. </script>
  37. </body>
  38. </html>