Prototype 框架分析(一)
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 框架分析(一)相关推荐
- jquery框架分析-构造jquery对象初步
这是一些分析jquery框架的文字 针对jquery 1.3.2版本 面向的读者应具备以下要求 1.非常熟悉HTML 2.非常熟悉javascript语法知识 3.熟悉javascript面向对象方面 ...
- Flutter框架分析(五)-- 动画
Flutter框架分析分析系列文章: <Flutter框架分析(一)-- 总览和Window> <Flutter框架分析(二)-- 初始化> <Flutter框架分析(三 ...
- hdfs文档存储服务器,一文读懂HDFS分布式存储框架分析
一文读懂HDFS分布式存储框架分析 HDFS是一套基于区块链技术的个人的数据存储系统,利用无处不在的私人PC存储空间及便捷的网络为个人提供数据加密存储服务,将闲置的存储空间利用起来,服务于正处于爆发期 ...
- 需求评审五个维度框架分析及其带来的启示-3-典型需求评审
典型情境是指软件开发的常见情境,本文选择如下来进行分析: 1. 传统瀑布模型开发下的需求评审 2. 使用IEEE Std. 1028的需求评审 3. 敏捷开发下的需求评审 传统瀑布模型下的需求评审 对 ...
- java连接linux服务器执行shell命令(框架分析+推荐)
java连接linux服务器执行shell命令(框架分析+推荐) 一.分类+连接方式 程序打成jar包,在本地服务器上执行shell命令.这种使用MyRuntimeUtil工具类 java程序远程li ...
- Linux USB驱动框架分析 【转】
转自:http://blog.chinaunix.net/uid-11848011-id-96188.html 初次接触与OS相关的设备驱动编写,感觉还挺有意思的,为了不至于忘掉看过的东西,笔记跟总结 ...
- linux音频框架分析,Alsa音频子系统Codec---al5623.c内核代码框架分析
驱动代码位于: sound/soc/codec/alc5623.c 随便找个Linux内核都会有. 1.首先进行i2c总线驱动加载在: static int __init alc5623_modini ...
- Janus流媒体服务器框架分析
Janus流媒体服务器框架分析 目录 webrtc多方通信架构 Janus流媒体服务器 1. webrtc多方通信架构 1. Mesh 方案 Mesh方案即多个终端之间两两进行连接,形成一个网状结构. ...
- FFmpeg过滤器框架分析
FFmpeg过滤器框架分析 目录 主要结构体和API介绍 AVFilterGraph-对filters系统的整体管理 AVFilter-定义filter本身的能⼒ AVFilterContext-fi ...
最新文章
- 象过河怎么用远程服务器,象过河远程协助的教程
- IEEE Fellow、AI大牛田奇加入华为云!他为何而来?“加速AI基础研究落地”
- 散列算法 SHA-1,SHA-2和SHA-256之间的区别
- (传送门)微信公众号推送文章(个人认为未来可能对我有用的部分)
- 设计一个有getMin功能的栈 (python)
- inkscape 无法打开文档属性
- 如何从云功能调用外部REST API
- 华大单片机m4内核的滴答定时器_微处理器、单片机及其外设,处理还是控制?...
- Spark在美团的实践
- winxp一键锁定计算机,WinXP下锁定计算机的3种方法
- 设计模式18_责任链
- Android:读取assets目录下文件(二)
- 管理感悟:技术文档有用吗
- android接收串口发送字符,android发送接收uart串口代码 - 源码下载|通讯/手机编程|android开发|源代码 - 源码中国...
- 打卡赠书,新一年的读者福利 !
- 优化设计-外点惩罚函数法-MATLAB编程
- C语言99乘法表代码案例
- BZOJ 5477: 星际穿越
- 论文详读:LEMNA: Explaining Deep Learning based Security Applications
- 大学四年,我因为使用这几个学习方法,成为了同学眼中的“大神”、BUG克星!