深入理解javascript原型和闭包

这个系列是在王福朋大大的blog看到的,之前wantsget那个项目有用到大大的wangEditor。

他的编辑器是我能找到的开源编辑器中最好看的。

安利下他的wangEditor: https://github.com/wangfupeng1988/wangEditor

废话不多说,直接上地址:深入理解javascript原型和闭包系列

《深入理解javascript原型和闭包系列》总共17篇博文,来回看了N遍,似懂非懂。

代码都明白,只是不明白闭包的使用场景,后来在一篇博文中看到了以下内容:

1.保护函数内的变量安全,加强了封装性
2.在内存中维持一个变量(用的太多就变成了缺点,占内存)闭包之所以会占用资源是当函数a执行结束后, 变量i不会因为函数a的结束而销毁, 因为b的执行需要依赖a中的变量。

又在知乎看到 JS闭包的真正意义?

js分全局作用域和函数作用域。函数作用域里可以访问到全局,通过一个叫作用域链的东西。但全局怎么访问函数呢?就有人想了在函数里面再写一个函数(闭包),这样把作用域链加长了。就可以在全局访问到函数里的数据了。闭包能访问到父级函数里面的数据说明父级里的数据一直存在内存中(闭包存在的情况下),这就会导致内存一直被占着。

感觉闭包有点类似于php或者java里的私有方法,提供对应方法可以供外部获取结果。


评论区