- 博客(9)
- 收藏
- 关注
Javascript 的函数式对象(九)利用事件机制降低耦合
大多数简单的页面应用,js可以写得较为自由随意,但涉及对象众多,关系复杂的 One Web Page 企业应用, 常常需要考虑如何降低js对象间的耦合,那种“你中有我,我中有你”的代码编写方式,会让维护人员无法接手。 因为工作关系,我曾接手过一个包含数千行js代码的项目。该项目的开发团队在国外,当时也还处于开发阶段。 缺少文档,遇到问题只能发邮件询问国外的开发团队,时...
2010-11-09 01:28:43 159
Javascript 的函数式对象(八)DOM对象管理器
开发一个交互式的Web页面,用来显示信息或接受用户输入的对话框必不可少。 对话框的创建对应着页面上若干DOM节点的生成和插入,考虑到移除这些DOM节点的开销, 对话框的关闭只是将这些DOM节点在页面上设置为不显示。下面是一个js生成对话框的示例: var Dialog = function(){ this.element = document.createE...
2010-11-07 03:28:02 178
Javascript 的函数式对象(七)配置注入式线程类
ExtJS 中所谓的“线程类“ TaskRunner 和 DelayedRunner,本质上都是调用了window对象的 setInterval 方法。 setInterval 的第一个参数是一段js代码,第二个参数是毫秒值。它将作为参数传入的js代码每隔一段时间调用一次, 两次调用间的时间间隔由第二个参数指定,直到 setInterval 返回的计数器被 clearInte...
2010-11-06 02:40:21 108
Javascript 的函数式对象(六)利用闭包模拟静态常量
js的闭包特性,还可用来模拟java中的final静态常量, 这些常量在定义时被赋值,可被外部访问,但不能被修改。 // 这个Constant类用来保存应用中的所有final静态常量 var Constant = (function(){ //不可被外部访问的闭包私有静态变量 var constants = { VERSION: 7.5 }; ...
2010-11-03 00:50:40 149
Javascript 的函数式对象(五)配置注入式继承
在EXT中,像下面这样实例化对象的方式很常见: var extWindow = new Ext.Window({ title: 'EXT WINDOW', modal: 'true', width:800, height:250, ...... }); 在创建实例的过程中,Ext.Window类的构造方法被注入一个config对象。 该con...
2010-11-02 01:39:57 109
Javascript 的函数式对象(四)多亲继承( Multiple Inheritance )
所谓的“多亲继承”,同样是借用面向对象语言的说法。 以前看过一些文章,介绍如何让js拥有面向对象语言的“继承”特性。 但在实际项目中,很少使用这些晦涩的方法来模拟“继承”的实现。 既然js提倡的是函数式编程,那就让我们忘掉“继承”,“接口”这些OO特性, 体验函数式编程的代码重构方法,达到“提取共性,封装变化”的目的。 //借用策略模式的思路,创建功能...
2010-10-31 20:38:36 147
Javascript 的函数式对象(三)利用闭包模拟类的静态变量和方法
除了模拟类的私有变量和私有方法。闭包还可用来模拟类的静态变量和方法。 除了再次利用js的闭包特性,还需要借助js语法上的一些特点。看下面一段代码: var MyNamespace = {}; // 定义命名空间 MyNamespace.TreeItem = (function(){ //使用闭包产生的私有静态变量,不可被外部访问 ...
2010-10-31 01:51:25 173
Javascript 的函数式对象(二)从垃圾回收器的角度理解闭包
当一个javascript函数返回时,js解析器会保留它作用域内的所有变量和函数。 闭包(Closure)这个词形象地描述了函数作用域现场被“封闭包存”起来这一行为。 直到该函数不再被其他对象引用,其作用域内的变量和函数才能被释放回收。 下面是关于js闭包的一段代码: function outerFunc(){ var privateAt...
2010-10-30 02:21:35 131
Javascript 的函数式对象(一)利用闭包模拟类的私有变量和方法
在Javascript的框架开发中,面向对象式编程和面向函数式编程各有长处,因况而异。 除了在单例工厂中设置一些类型常量外,闭包通常被用来模拟类的私有变量和方法。 结合js的prototype机制,一个具有面向对象特点的js函数能够被以减少内存占用的形式实例化出来。 [code="js"]var MyNamespace = {}; MyNamespace.TreeIte...
2010-10-29 02:09:36 243
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人