- 博客(9)
- 资源 (5)
- 收藏
- 关注
转载 JavaScript重构(十):强化对象封装和模块封装
1、类本身就是一种封装形式,先来看看最简单的封装,JavaScript中没有private关键字,对于私有成员,不如我们统一一个以下划线开头的命名来标识: Js代码 var User = function(name){ this._name = name; this.getName = function(){ return _name;
2017-07-05 23:09:46 435
转载 JavaScript重构(九):自定义的JavaScript产品框架
产品做到一定程度,JavaScript不仅仅需要几个层面上的重构,而需要将这些合理的、零散的重构集成起来、系统化,最终形成一套适合自己产品的前端框架。 以某套产品的前端框架为例,包含了这么几个组件: 1、通用工具组件,提供了UI组件最基础的通用能力,包括:日志、缓存、数据共享、数据异步加载、原生对象扩展、Ajax产品定制化等等。 2、共享UI组件,包括:通用弹出框、通用按钮等。 3、产品基
2017-07-05 23:08:49 139
转载 JavaScript重构(一):模块划分和命名空间
通常我们的团队中,开发人员在Java语言层面具备相当的技术素养,经验丰富,而且有许多成熟的、合理的规约,类型繁多的代码隐患检查工具,甚至在团队间还有计划内的评审和飞检。但是前端的代码不似后台,就像一个没人疼的孩子,不仅仅容易被低估、被轻视,导致质量低劣、可维护性差,技能上,更缺少优秀的前端开发人员。 JavaScript是前台代码中重要组成部分,随着版本的延续,产品越做越大,JavaScript
2017-07-05 23:07:25 168
转载 JavaScript重构(二):JS的动态加载
前一节留下了一个问题,如果JS分门别类也清晰了,那我现在需要在必要的情况下才加载某一模块的JS,这个怎么实现呢? 方法一,最简单也是最容易被接受的方法,通过后台代码来控制,还是少些复杂的JS吧,通过一个标签、一个分支判断,就可以做到,何乐而不为呢? 方法二,如果要使用纯JS来控制,那么看看这样如何: Js代码 $.ajax(){ url:"xxx/play.js";
2017-07-05 23:06:47 249
转载 JavaScript重构(三):JavaScript的测试
进行JavaScript重构时,我希望引入易于使用的测试框架来保证重构的顺利进行,未来能持续通过测试代码对JavaScript逻辑的正确性做保障。 JsUnit (http://sourceforge.net/projects/jsunit/,http://www.jsunit.net/) JsUnit是一个独立的JavaScript单元测试框架,和JUnit差不多,没有上手难度,包括传统的s
2017-07-05 23:06:10 183
转载 JavaScript重构(四):JavaScript编码规则
没有规矩,不成方圆,JavaScript带来了灵活性,也带来了不受控的变量和访问,所以要用规则限制它。一支成熟的团队,还是一支新鲜的团队,规则应当是不一样的,我只是列出一些常见的或者有效的办法,来约束跳跃的开发人员,思维可以任意飞跃,代码却要持续受控。当然,任何规则都是建立在一定的认知基础之上的,面向对象JavaScript的基础是必备的,否则一切无从谈起。 变量和方法控制: 模块开发不
2017-07-05 23:05:23 144
转载 JavaScript重构(五):利用原型和闭包,完成组件方法
Java代码 var Player = (function(){ Player = function(){ //这只是个空壳 throw new Error("Can not instantiate a Player object."); }; Player.MIN_EXTENDED_TIME = 1; Player.MAX_EXTENDED_TIME =
2017-07-05 23:04:09 168
转载 JavaScript重构(六):利用继承来做事
终于要说到JavaScript的继承了,原型链继承是最常用的一种方式: Java代码 function Video(){}; function Movie(){}; Movie.prototype = new Video(); Movie.prototype.constructor = Movie; //不要丢失构造器 啰嗦一句,如果我拿到的是方法的实例,一样可以
2017-07-05 23:03:05 226
转载 JavaScript重构(七):重用老代码
在Java中,有这样一段老代码: Java代码 class Round{ public void drawRound(); //画圆 } 现在新代码希望能和它共存,使用一个Person的对象来控制,只不过,可能drawRound,也可能drawRect啊: Java代码 class Rect{ public void drawRect(); //画方
2017-07-05 22:58:45 201
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人