首页 > 代码库 > 试读《基于MVC的JavaScript Web富应用开发》— 不一样的JavaScript

试读《基于MVC的JavaScript Web富应用开发》— 不一样的JavaScript

前言

    《基于MVC的JavaScript Web富应用开发》是ItEye在7月份发起试读的书。下载了试读的章节,发现只有全本的开始到第二章,第一章很简洁明了地讲述了JavaScript的历史,怎么用JavaScript实现类,基本JavaScript的MVC的概念;第二章是浏览器的事件机制,DOM的事件监听,JQuery事件绑定的例子。

    值得一提的是,这本书原本是O’Reilly Media, Inc带来的。O’Reilly的一系列“动物书”总是经典。

 

最大的感触:JavaScript的MVC

    本人曾经用JavaScript基于GoogleDesptop(现在GoogleDesptop几乎淡出视线了)上游戏应用,感觉JavaScript灵活,难以调错。后来在JavaWeb开发中也少不了使用JavaScript、JQuery。正如书上所说,开发者的需求往往是给现有代码添加一个表单验证、弹出框或图片轮播控件,而且工期也很紧。因此我们直接去网上找一段能用的代码就可以了,而不必花时间去学习和理解这门语言。相比 Python 和 Ruby,同样是脚本类的语言,我们并没有给JavaScript足够的学习和阅读。

    书中也提到了JavaScript已经成长为一种强大的、动态的面向对象编程语言。JavaScript已经不是几十行代码的简单效果实现,已经拥有很多框架,使用JavaScript 来构建庞大的应用已经屡见不鲜,而且越来越流行。像 Gmail 和 Google Maps 之类的产品给我们带来了Web 应用全新的体验。

    似乎,给JavaScript一些经典的设计理念和最佳实践,越来越重要。我们已经不能使用一个大杂烩的JavaScript代码实现功能,MVC的加入必不可少。

 

怎么模块化

    以前试图看JQuery源码,看到一头雾水,类似jquery.extend,jquery.prototype,在这本书开始便有了阐述。

    怎么创建类:

 

Js代码  收藏代码
  1. var Person = function(name) {  
  2. this.name = name;  
  3. };  
  4. // 实例化一个 Person  
  5. var alice = new Person(‘alice‘);  
  6. // 检查这个实例  
  7. assert( alice instanceof Person );  

 

   创建自己的类模拟库:

 

Js代码  收藏代码
  1. var Class = function(){  
  2. var klass = function(){  
  3. this.init.apply(this, arguments);  
  4. };  
  5. klass.prototype.init = function(){};  
  6. return klass;  
  7. };  
  8. var Person = new Class;  
  9. Person.prototype.init = function(){  
  10. // 基于 Person 的实例做初始化  
  11. };  
  12. // 用法 :  
  13. var person = new Person;  

 

   给类添加属性或方法:

 

Js代码  收藏代码
  1. var Person = new Class;  
  2. // 直接给类添加静态方法  
  3. Person.find = function(id){ /* ... */ };  
  4. // 这样我们可以直接调用它们  
  5. var person = Person.find(1);  

 

 

  给类原型添加属性或方法:

 

Js代码  收藏代码
  1. var Person = new Class;// 在原型中定义函数  
  2. Person.prototype.save = function(){ /* ... */ };  
  3. // 这样就可以在实例中调用它们  
  4. var person = new Person;  
  5. person.save();  

 还有一系列的命名空间,私有方法变量的控制,总之在给类的模拟构建做准备。JavaScript的类的构建需要类模拟的库的实现。