有了上一节的基础,我们这一节来模拟一个简单的继承
1.Crab = function(){
2. this.leg = 10;
3.};
4.
5.Crab.prototype.say = function(){alert(‘we hava ‘+this.leg+‘ legs‘)};
6.
7.GenCrab = function(){//螃蟹进化成人,变成蟹将了,只有2条腿了
8. this.leg = 2;
9.}
10.
11.function extend(child,father){//定义出一个继承函数,有2个参数,子类,父类
12. child.prototype = father.prototype;
13.}
14.
15.extend(GenCrab,Crab);//这样一来,蟹将也有say的方法了
16.
17.gCrab = new GenCrab();
18.
19.gCrab.say();//执行出来 we hava 2 legs
怎么样,蟹将已经将螃蟹的方法继承下来了吧?那如果要将父类的属性也继承下来呢?我想到2个方法:
第一、把父类的属性写入prototype中,如Crab.prototype.leg = 10
第二、GenCrab.prototype = new Crab();不知道你能不能看懂,呵呵,估计网上都没有人这样用过,但这样子写能把属性和方法全部继承,其中的奥秘,请您自己思考下
好了,我们进入Ext的主题,那么Ext是怎么将属性继承下来的呢?答案是第一种方法。如果您仔细看过我写的第一篇文章,您一定会说,规范约定,只有方法才写在prototype中的呀,怎么能把属性也写入呢?岂不是把清楚的事情又弄复杂了?
聪明的Ext团队,的的确确是用第一种方法的,只是在写法上稍稍改变了下
1.function extend(child,father,override){//定义出一个继承函数,有2个参数,子类,父类,重载对象
2. child.prototype = father.prototype;
3.
4. for(var m in override){//将重载对象里面所有的东西(这里说的东西,无非就是属性和方法)都拿出来赋给子类,作为子类的属性或者方法
5. child.prototype[m] = override[m];
6. }
7.}
这样一来,又有了新的规范了,把类的属性都往override里面写,把方法仍旧往prototype里面写,我下面举个例子
1.function extend(child,father,override){//定义出一个继承函数,有2个参数,子类,父类,重载对象
2. child.prototype = father.prototype;
3.
4. for(var m in override){//将重载对象里面所有的东西(这里说的东西,无非就是属性和方法)都拿出来赋给子类,作为子类的属性或者方法
5. child.prototype[m] = override[m];
6. }
7.}
8.
9.Crab = function(){
10. //这里不写属性了
11.};
12.
13.extend(Crab,Object,{leg:10,eye:2});//让Crab继承绝对父类Object,并把属性写到这里来,因为螃蟹和蟹将都有2只眼睛,所以蟹将一会将继承这个属性
14.
15.Crab.prototype.say = function(){alert(‘we hava ‘+this.leg+‘ legs, ‘+this.eye+‘ eyes‘)};//方法仍旧在这里定义
16.
17.GenCrab = function(){
18.}
19.
20.extend(GenCrab,Crab,{leg:2});//这里,眼睛和脚都从父类那里继承过来了,但蟹将只有2只脚,所以我们只需要覆盖脚这个属性就可以了
21.
22.gCrab = new GenCrab();
23.
24.gCrab.say();// we have 2 legs, 2 eyes
好了,属性和方法都已经可以继承了,Ext.extend也已经差不多成型了,请接着看第三节《Ext.extend三部曲》
分享到:
相关推荐
Ext JS源码分析与开发实例宝典光盘源码Ext JS源码分析与开发实例宝典光盘源码Ext JS源码分析与开发实例宝典光盘源码Ext JS源码分析与开发实例宝典光盘源码Ext JS源码分析与开发实例宝典光盘源码Ext JS源码分析与开发...
通过以上分析,我们可以看出EXT源码的深度和广度,它是JavaScript UI开发的一个强大工具。深入学习EXT源码,不仅有助于提升我们的编程技能,也有利于我们更好地利用EXT来构建高效、美观的Web应用。
JavaScript凌厉开发——Ext详解与实践 源码 源代码 part3 因为源代码比较大,压缩后76M左右 所以分为四个包上传
一、EXT JS 源码分析 EXT JS 的源码结构清晰,包括核心库、组件、布局、数据管理、表单元素等模块。通过阅读源码,开发者可以了解到EXT JS如何实现组件化、事件处理、数据绑定等功能,进一步优化自己的代码结构和...
JavaScript凌厉开发——Ext详解与实践_源码清单.rarJavaScript凌厉开发——Ext详解与实践_源码清单.rarJavaScript凌厉开发——Ext详解与实践_源码清单.rar
Ext+JS源码分析与开发实例宝典.pdf,清晰完整版。彭仁夔 编著,2010.1 。该书共6个part,全部下载才能RAR解压。...配套DVD中包窗大量源码和案例文件 (另请下载 Ext+JS源码分析与开发实例宝典_光盘源码.part1, part2)
Ext是一个强大的AJAX框架,其核心源码的解析对于深入理解和运用该框架至关重要。在JavaScript中,实现继承是通过扩展Object对象的prototype属性来达到的,而Ext框架则提供了自己的一套实现机制。 首先,Ext提供了一...
Ext+JS源码分析与开发实例宝典.pdf,清晰完整版。彭仁夔 编著,2010.1 。该书共6个part,全部下载才能RAR解压。...配套DVD中包窗大量源码和案例文件 (另请下载 Ext+JS源码分析与开发实例宝典_光盘源码.part1, part2)
Ext3.0 JS源码分析与开发实例宝典
在ExtJS中,`Ext.extend()` 是一个核心的函数,用于实现类之间的继承机制。它允许你创建新的类(子类),这些类将继承另一个类(父类)的属性和方法。这个功能对于构建复杂的JavaScript应用程序至关重要,因为它提供...
Ext+JS源码分析与开发实例宝典.pdf,清晰完整版。彭仁夔 编著,2010.1 。该书共6个part,全部下载才能RAR解压。...配套DVD中包窗大量源码和案例文件 (另请下载 Ext+JS源码分析与开发实例宝典_光盘源码.part1, part2)
《JavaScript凌厉开发——Ext JS3详解与实践》是一本深度探讨JavaScript库Ext JS3的专著,旨在帮助开发者深入理解和高效运用这一强大的前端框架。本文将围绕标题、描述及标签,详细介绍Ext JS3的核心概念、关键特性...
它能够从一个数据块(通常是一个空的文件)创建一个新的、完整的ext4文件系统,并将其挂载到指定的目录。这个工具在Android开发中非常常用,因为Android系统主要基于ext4文件系统。通过`make_ext4fs`,我们可以...
2. `include/linux/ext4.h`: 定义了EXT4相关的结构体、常量和函数原型,是理解和分析EXT4源码的关键头文件。 3. `block/mmp.c`: 处理多映射点(Multi-Mount Protection,MMP)功能,防止不同挂载点同时修改同一文件...
2. Inode:EXT4中的每个文件或目录都有一个对应的inode,存储了文件的元数据,如文件权限、创建时间、修改时间、大小等。`struct ext4_inode_info`定义了EXT4的inode结构。 3. 目录项:EXT4的目录项(dentry)负责...
### Ext_JS源码分析与实例宝典 #### 1.1 ExtJS简介 随着Web2.0时代的到来,JavaScript库如雨后春笋般涌现,极大地丰富了前端开发的工具箱。在这之中,ExtJS凭借其强大的功能和易用性脱颖而出,成为了构建Web富...
JavaScript凌厉开发——Ext详解与实践_源码清单JavaScript凌厉开发——Ext详解与实践_源码清单JavaScript凌厉开发——Ext详解与实践_源码清单
EXT是一个流行的JavaScript库,主要用于构建富互联网应用程序(RIA)。它提供了丰富的组件模型,包括数据绑定、布局管理、可拖放支持以及许多其他功能。EXT源码API开发文档是一份宝贵的资源,适合开发者深入理解EXT...
Ext+JS源码分析与开发实例宝典.pdf,清晰完整版。彭仁夔 编著,2010.1 。该书共6个part,全部下载才能RAR解压。...配套DVD中包窗大量源码和案例文件 (另请下载 Ext+JS源码分析与开发实例宝典_光盘源码.part1, part2)
Ext+JS源码分析与开发实例宝典.pdf,清晰完整版。彭仁夔 编著,2010.1 。该书共6个part,全部下载才能RAR解压。...配套DVD中包窗大量源码和案例文件 (另请下载 Ext+JS源码分析与开发实例宝典_光盘源码.part1, part2)