Prototype 框架分析(一)

Class

关于javascript的面向对象设计可以参看MSDN上的文章《JavaScript使用面向对象的技术创建高级 Web 应用程序》,这样理解起来更加容易。

  • Class的声明

Prototype的帮助文档中关于Class的介绍中有下面的例子:

var Animal = Class.create();

Animal.prototype = {

initialize: function(name, sound) {

this.name  = name;

this.sound = sound;

},

speak: function() {

alert(name + " says: " + sound + "!");

}

};

var snake = new Animal("Ringneck", "hissssssssss");

snake.speak();

// -> alerts "Ringneck says: hissssssssss!"

//snake.name = "NewRingneck";

//snake.speak();

//如果更改了Animal的名字,它的speak方法仍然是初始化的状态。

//原因就在于js的闭包原理,所以speak方法应该为

//alert(this.name + " says: " + this.sound + "!");

这里Class.create()返回了一个函数,也就是说变量Animal是一个函数。而这个函数的功能就是调用Obj的initialize方法,从而实现类的初始化。因此每个类必须要有initialize方法。

  • Class的继承

Class的继承其实就是更改对象的prototype:

//接着上面的例子

var Dog = Class.create();

//Object.extend方法返回Animal对象,并且给这个Animal增加了

//initialize方法,而根据js运行时可以知道会覆盖先前Animal

//的initialize方法。不过这里Dog.prototype的constructor方法没有改变跟Animal.prototype一致。

//当然如果不用constructor方法也就可以忽略这一点了。

Dog.prototype = Object.extend(new Animal(), {

initialize: function(name) {

this.name  = name;

this.sound = "woof";

}

});

var fido = new Dog("Fido");

fido.speak();

// -> alerts "Fido says: woof!"

转载于:https://www.cnblogs.com/laolaowhn/archive/2008/02/23/1078726.html

Prototype 框架分析(一)相关推荐

  1. jquery框架分析-构造jquery对象初步

    这是一些分析jquery框架的文字 针对jquery 1.3.2版本 面向的读者应具备以下要求 1.非常熟悉HTML 2.非常熟悉javascript语法知识 3.熟悉javascript面向对象方面 ...

  2. Flutter框架分析(五)-- 动画

    Flutter框架分析分析系列文章: <Flutter框架分析(一)-- 总览和Window> <Flutter框架分析(二)-- 初始化> <Flutter框架分析(三 ...

  3. hdfs文档存储服务器,一文读懂HDFS分布式存储框架分析

    一文读懂HDFS分布式存储框架分析 HDFS是一套基于区块链技术的个人的数据存储系统,利用无处不在的私人PC存储空间及便捷的网络为个人提供数据加密存储服务,将闲置的存储空间利用起来,服务于正处于爆发期 ...

  4. 需求评审五个维度框架分析及其带来的启示-3-典型需求评审

    典型情境是指软件开发的常见情境,本文选择如下来进行分析: 1. 传统瀑布模型开发下的需求评审 2. 使用IEEE Std. 1028的需求评审 3. 敏捷开发下的需求评审 传统瀑布模型下的需求评审 对 ...

  5. java连接linux服务器执行shell命令(框架分析+推荐)

    java连接linux服务器执行shell命令(框架分析+推荐) 一.分类+连接方式 程序打成jar包,在本地服务器上执行shell命令.这种使用MyRuntimeUtil工具类 java程序远程li ...

  6. Linux USB驱动框架分析 【转】

    转自:http://blog.chinaunix.net/uid-11848011-id-96188.html 初次接触与OS相关的设备驱动编写,感觉还挺有意思的,为了不至于忘掉看过的东西,笔记跟总结 ...

  7. linux音频框架分析,Alsa音频子系统Codec---al5623.c内核代码框架分析

    驱动代码位于: sound/soc/codec/alc5623.c 随便找个Linux内核都会有. 1.首先进行i2c总线驱动加载在: static int __init alc5623_modini ...

  8. Janus流媒体服务器框架分析

    Janus流媒体服务器框架分析 目录 webrtc多方通信架构 Janus流媒体服务器 1. webrtc多方通信架构 1. Mesh 方案 Mesh方案即多个终端之间两两进行连接,形成一个网状结构. ...

  9. FFmpeg过滤器框架分析

    FFmpeg过滤器框架分析 目录 主要结构体和API介绍 AVFilterGraph-对filters系统的整体管理 AVFilter-定义filter本身的能⼒ AVFilterContext-fi ...

最新文章

  1. 象过河怎么用远程服务器,象过河远程协助的教程
  2. IEEE Fellow、AI大牛田奇加入华为云!他为何而来?“加速AI基础研究落地”
  3. 散列算法 SHA-1,SHA-2和SHA-256之间的区别
  4. (传送门)微信公众号推送文章(个人认为未来可能对我有用的部分)
  5. 设计一个有getMin功能的栈 (python)
  6. inkscape 无法打开文档属性
  7. 如何从云功能调用外部REST API
  8. 华大单片机m4内核的滴答定时器_微处理器、单片机及其外设,处理还是控制?...
  9. Spark在美团的实践
  10. winxp一键锁定计算机,WinXP下锁定计算机的3种方法
  11. 设计模式18_责任链
  12. Android:读取assets目录下文件(二)
  13. 管理感悟:技术文档有用吗
  14. android接收串口发送字符,android发送接收uart串口代码 - 源码下载|通讯/手机编程|android开发|源代码 - 源码中国...
  15. 打卡赠书,新一年的读者福利 !
  16. 优化设计-外点惩罚函数法-MATLAB编程
  17. C语言99乘法表代码案例
  18. BZOJ 5477: 星际穿越
  19. 论文详读:LEMNA: Explaining Deep Learning based Security Applications
  20. 大学四年,我因为使用这几个学习方法,成为了同学眼中的“大神”、BUG克星!

热门文章

  1. 检查图形是否为真彩色图形
  2. 【转】Linux将composer的bin目录放到PATH环境变量中
  3. 网络编程—网络基础概览、socket,TCP/UDP协议
  4. H5外部浏览器直接调起微信——通过url协议 weixin:// 判断是否安装微信及启动微信...
  5. vs2015 行数统计
  6. 三星framebuffer驱动代码分析
  7. 110. Balanced Binary Tree
  8. CoordinatorLayout使用全解析
  9. 《Linux内核分析》实践2
  10. 1.3.3 改善后的异常处理