前言

《基于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,在这本书开始便有了阐述。

怎么创建类:

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

创建自己的类模拟库:

  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;

给类添加属性或方法:

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

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

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

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

试读《基于MVC的JavaScript Web富应用开发》— 不一样的JavaScript的更多相关文章

  1. 试读《基于MVC的JavaScript Web富应用开发》

    前两年做jsp开发时,用了不少JavaScript(JS)和Ajax, 最近的项目一直在使用Flex做前台,虽然也有类似的ActionScript实现JS的功能,但没想到的是,短短几年JS发展如此迅速 ...

  2. 《基于MVC的JavaScript Web富应用开发》学习笔记

    第1章 MVC和类 1. 什么是MVC? MVC是一种设计模式, 它将应用划分为3个部分: 数据(模型, Model), 展现层(视图, View) 和用户交互层(控制器, Controller). ...

  3. 再读<<基于MVC的JavaScript Web 富应用开发>>

    工作的时候粗读过这本书的几章内容,真真是囫囵吞枣~~目前手边就剩这一本,重新读才觉得先前是没看明白啊!这个作者博闻强识,对这些插件.库了解的非常多.记录下,查的资料 订阅/发布 jQuery Tiny ...

  4. [已读]基于MVC的Javascript Web 富应用开发

    这本书是12年出版,我买的时间应该是13年,书架上唯一一本盗版→ → 但是看完是在今年. 因为刚拿到的时候,读起来很是磕磕绊绊,就搁置了蛮久.到第二次拿起来的时候,发现已经有部分内容过时,但我还是觉得 ...

  5. 基于MVC设计模式的Web应用框架:struts2的简单搭建(一)

    Struts2的初步介绍 Struts2是apache项目下的一个web 框架,普遍应用于阿里巴巴.京东等互联网.政府.企业门户网站.虽然之前存在了很大的安全漏洞,在2013年让苹果.中国移动.中国联 ...

  6. Struts2是一个基于MVC设计模式的Web应用框架

    Struts2是一个基于MVC设计模式的Web应用框架,它本质上相当于一个servlet,在MVC设计模式中,Struts2作为控制器(Controller)来建立模型与视图的数据交互. Struts ...

  7. 基于soap 的 python web services 服务开发指南

    文章大纲 序言 相关概念 SOA web services SOAP WSDL UDDI 环境搭建 我们使用 python 3.6 这个较新python 版本 服务端开发 客户端开发 suds-jur ...

  8. Javascript 与 SPA单页Web富应用

    书单推荐 # <单页Web应用:JavaScript从前端到后端> http://download.csdn.net/detail/epubitbook/8720475 # <MVC ...

  9. 基于MVC4+EasyUI的Web开发框架经验总结(7)--实现省份、城市、行政区三者联动

    为了提高客户体验和进行一些技术探索,现在正准备把我自己的客户关系管理系统CRM在做一个Web的版本,因此对基于MVC的Web界面继续进行一些研究和优化,力求在功能和界面上保持和Winform一致,本文 ...

随机推荐

  1. Asp.Net Core 轻松学-一行代码搞定文件上传 JSONHelper

    Asp.Net Core 轻松学-一行代码搞定文件上传   前言     在 Web 应用程序开发过程中,总是无法避免涉及到文件上传,这次我们来聊一聊怎么去实现一个简单方便可复用文件上传功能:通过创建 ...

  2. 进程间通信机制(管道、信号、共享内存/信号量/消息队列)、线程间通信机制(互斥锁、条件变量、posix匿名信号量)

    注:本分类下文章大多整理自<深入分析linux内核源代码>一书,另有参考其他一些资料如<linux内核完全剖析>.<linux c 编程一站式学习>等,只是为了更好 ...

  3. Zynq7000术语详解,不懂啥是PL,PS,APU,SCU?那就进来看看吧

    Zynq7000术语详解,不懂啥是PL,PS,APU,SCU?那就进来看看吧     相信大家刚看到Zynq手册的时候,对着那么一大堆缩略语肯定是一头雾水,特转来一篇文章,为大家解惑 摘要:本文介绍与 ...

  4. 用TTTAttributedLabel创建变化丰富的UILabel

    转自:http://blog.csdn.net/prevention/article/details/9998575 1. 不同颜色的字段混合在一个Label里怎么实现? 看TTTAttributed ...

  5. Android系统框架介绍

    src目录:主要是完成java代码的编写 assets目录:资源目录 res目录:存在图片,布局文件和字符串.菜单等文件 bin目录:输出文件夹,如生成的APK文件 project,propertie ...

  6. 李洪强iOS之集成极光推送三iOS集成指南

    李洪强iOS之集成极光推送三iOS集成指南 SDK说明 适用版本 本文匹配的 SDK版本:r2.1.5 以后.查看最近更新了解最新的SDK更新情况.使用Xcode 6及以上版本可以使用新版Push S ...

  7. 基于Cocos2d-x学习OpenGL ES 2.0之多纹理

    没想到原文出了那么多错别字,实在对不起观众了.介绍opengl es 2.0的不多.相信介绍基于Cocos2d-x学习OpenGL ES 2.0之多纹理的,我是独此一家吧.~~ 子龙山人出了一个系列: ...

  8. Spring 是如何解决并发访问的线程安全性问题的

    springmvc的controller是singleton的(非线程安全的),这也许就是他和struts2的区别吧!和Struts一样,Spring的Controller默认是Singleton的, ...

  9. 错误地使用catch

    try { // do something } catch (Exception e) { } 错误:这里,catch了Exception,但是在catch中什么动作都没做,那么所有的Exceptio ...

  10. C++控制台读取和输出函数

    c中puts()函数用来向标准输出设备(屏幕)写字符串并换行,其调用方式为,puts(s);其中s为字符串字符(字符串数组名或字符串指针). 功 能: 送一字符串到流stdout中 用 法: int ...