1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950 |
- <!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、死亡:在嵌套的内部函数成为垃圾对象时
- -->
- <script>
- function fn1() {
- //此时闭包就已经产生了(函数提升,内部函数对象已经创建了)
- var a = 2
- function fn2() {
- a++
- console.log(a)
- }
- return fn2
- }
- var f = fn1()
- f() //3
- f() //4
- f = null //闭包死亡(包含闭包的函数对象成为了垃圾对象
- function fn1() {
- //此时闭包就已经产生了(函数提升,内部函数对象已经创建了)
- var a = 2
- var fn2 = function () {
- a++
- console.log(a)
- }
- //此时闭包产生(函数定义完成后产生)
- return fn2
- }
- var f = fn1()
- f() //3
- f() //4
- f = null //闭包死亡(包含闭包的函数对象成为了垃圾对象
- </script>
- </body>
- </html>
|