深入理解JavaScript闭包[转发]
这两天在研究JavaScript,发现一篇讲JS闭包的文章,讲得很透彻,非常喜欢,在这里转发一下,郁闷的是,竟然不知道到文章的真正源头是在哪里,真是尴尬啊。
我转自的地址是 http://www.nowamagic.net/javascript/js_Closure.php
------------------------------------------------------------
function Constructor(...) { var that = this; var membername = value; function membername(...) {...}}
以上3点是闭包最基本的应用场景,很多经典案例都源于此。
Javascript的垃圾回收机制
在Javascript中,如果一个对象不再被引用,那么这个对象就会被GC回收。如果两个对象互相引用,而不再被第3者所引用,那么这两个互相引用的对象也会被回收。因为函数a被b引用,b又被a外的c引用,这就是为什么函数a执行后不会被回收的原因。
结语
理解JavaScript的闭包是迈向高级JS程序员的必经之路,理解了其解释和运行机制才能写出更为安全和优雅的代码。