闭包的一种理解,赞!
我们都知道JavaScript中闭包的概念实在是晦涩难懂,有时或许知道某种形式是闭包,可就不晓得怎么样向另一个人解释闭包。
今天偶尔在 http://www.css88.com/archives/4492 这个页面上发现了一段对闭包的很形象的描述:
“这次,我用的是闭包的方式去实现,其中最重要的一点是reutrn Return; 这里会引伸到值类型与引用类型的概念。在js里,Object就是一个引用类型,在闭包里,我会抛出一个包含有属性与方法的Object的引用,这样,也 可以说是把这个Object抛向了外部,实现了公开。StaticClass这个变量接住了Return引用。 对于闭包内部的私有字段与方法都是没有被抛出的,这样就可以形成一个私有的环境。很多时候我们都会用这种技巧去对JS进行分块,让程序不会那么的混乱。”
闭包就是把私有属性和私有方法给封装起来了,而通过公有方法(或公有属性)来实现闭包内与闭包外的“通话”。这往往会牵扯到变量的引用(类似指针)。