12345678910111213141516171819202122232425262728293031323334353637383940414243 |
- <!DOCTYPE html>
- <html lang="en">
- <head>
- <meta charset="UTF-8">
- <meta http-equiv="X-UA-Compatible" content="IE=edge">
- <meta name="viewport" content="width=device-width, initial-scale=1.0">
- <title>Document</title>
- </head>
- <body>
- <!--
- 1、使用函数内部的变量在函数执行完后,仍然存活在内存中(延长了局部变量的生命周期)
- 2、让函数外部可以操作(读写)到函数内部的数据(变量/函数)
- 问题:
- 1、函数执行完后,函数内部声明的局部变量是否还存在?
- *一般是不存在的,存在于闭包中的变量才可能存在
- 2、在函数外部能直接访问函数内部的局部变量吗?
- *不能,但是我们可以通过闭包让外部操作它
- -->
- <script>
- function fn1() {
- var a = 2
- function fn2() {
- a++
- console.log(a)
- }
- function fn3(){
- a--
- console.log(a)
- }
- return fn3
- }
- var f = fn1()
- f() //1
- f() //0
- </script>
- </body>
- </html>
|