摘要: 闭包的两个特点:1、作为一个函数变量的一个引用 - 当函数返回时,其处于激活状态。2、一个闭包就是当一个函数返回时,一个没有释放资源的栈区。其实上面两点可以合成一点,就是闭包函数返回时,该函数内部变量处于激活状态,函数所在栈区依然保留.我们所熟知的主流语言,像C,java等,在函数内部只要执行了return,函数就会返回结果,然后内存中删除该函数所在的区域.生命周期也就停止了.一般的js函数也是这样.但是有闭包特性的js函数有点特殊.就例子来说:function a(){var i=0;function b(){alert(++i);}return b;}var c = a();c();这是个 阅读全文
posted @ 2011-02-14 11:23 clound 阅读(312) 评论(0) 推荐(0) 编辑
摘要: 这段时间在项目中接触到了Strategy策略模式,所以就学习了一下,做一个总结。 Strategy策略模式是一种对象行为模式。主要是应对:在软件构建过程中,某些对象使用的算法可能多种多样,经常发生变化。如果在对象内部实现这些算法,将会使对象变得异常复杂,甚至会造成性能上的负担。 GoF《设计模式》中说道:定义一系列算法,把它们一个个封装起来,并且使它们可以相互替换。该模式使得算法可独立于它们的客户变化。 Strategy模式的结构图如下: 从图中我们不难看出:Strategy模式实际上就是将算法一一封装起来,如图上的ConcreteStrategyA、ConcreteStrategyB、Con 阅读全文
posted @ 2011-02-14 10:36 clound 阅读(413) 评论(0) 推荐(0) 编辑