密闭的容器,类似于set、map容器,用于存储数据
闭包是一个对象,存放数据的格式为: key :value
注意点
合理使用闭包使用完闭包及时清除(销毁) <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <meta name="viewport" content="width=device-width, initial-scale=1.0"> <title>闭包</title> </head> <body> <script> function fun(n,o){ console.log(o); return { fun:function(m){ return fun(m,n); } } } var a = fun(0); a.fun(1); a.fun(2); a.fun(3); /* var a = fun(0); o未定义输出undefined a.fun(1); a.fun(1) => fun(1,0) 输出 0 a.fun(2); a.fun(2) => fun(2,0) 输出 0 a.fun(3); a.fun(3) => fun(3,0) 输出 0 */ var b = fun(0).fun(1).fun(2).fun(3) /* var b = fun(0).fun(1).fun(2).fun(3) 第一次调用fun(0),参数o未定义输出undefined fun(0).fun(1) => var a = fun(0) a.fun(1) 输出 0 fun(0).fun(1).fun(2) => var a = fun(1,0) a.fun(2) 输出 1 fun(0).fun(1).fun(2).fun(3) => var a = fun(2,1) a.fun(3) 输出 2 */ var c = fun(0).fun(1) c.fun(2) c.fun(3) /* var c = fun(0).fun(1) fun(0).fun(1) => var a = fun(0) a.fun(1) 输出 0 c.fun(2) c.fun(2) =>fun(2,1) 输出 1 c.fun(3) c.fun(3) =>fun(3,1) 输出 1 */ </script> </body> </html>