Lazy Function Definition
Wednesday, December 17th, 2008在peter blog上看到这种模式,觉得很不错,可以在写js 框架时纳入这种写法 : var foo = function() { var t = new Date(); foo = function() { return t; }; return foo(); }; 定义了一个foo函数,当第一次执行foo的时候new 了一个Date对象,然后reassign了一个新函数 给foo,然后return 了foo(),这里就是t, 第二次去call foo函数,就会直接return 先前的t. :D 。其实第二次你去call的这个foo函数其实 是一个closure了. 那么这种模式有何好处呢--当你去执行一个分支流程代价很高昂的时候,你可以将这个 分支执行的值放入closure.其实就像cache一样。不需要在重新handle了,直接返回你要的数据。 这个模式在cross browser上更显示出它的power ...