摘要:<!DOCTYPE html> <html> <head> <title></title> </head> <body> <script type="text/javascript"> function a() { var b
<!DOCTYPE html> <html> <head> <title></title> </head> <body> <script type="text/javascript"> function a() { var b = 100; function c(){ var d = 2; return document.write(b+d); } c(); } a(); </script> </body> </html>
这个算闭包吗?老师,感觉不这样子写都会方便一点
批改老师:天蓬老师批改时间:2018-12-20 10:38:15
老师总结:算是闭包,但还不是真正意义上的纯闭包, 这个子函数,如果离开它的词法作用域,再调用, 理论上说,这才是真正意义上的闭包, 现在c函数,仍在a函数内被调用,并没离开它的词法作用域,最好是返回c: return c; 然后在a函数外部, a()(),这样来调用c, 这样才是如假包换的闭包.