11、回顾一下类的形式定义(根类雏形基本形成)
_class("AObject", function(){
this._init = function(){
this._disposed = false;
};
//这个方法具体作何用途只能以后说明了,暂且理解成析构函数吧
this.dispose = function(){
this._disposed = true;
};
});
12、设计基类的目的是为了继承,所以有必要对基础支持代码做些调整,以便于支持继承
在_class函数第二个参数位置添加一个参数superClass,用来引用当前类的父类,注意放在第二个位置是有目的的,主要是为了和java中的类定义形式产生对照关系。
//---- 基础支持代码开始 ----
function __newClass(){
return function(){
this._init.apply(this, arguments);
};
}
function _class(className, superClass, classImp){
if(superClass === null){
//如果是null,默认父类为Object(实现中只有AObject继承自Object)
superClass = Object;
}else if(superClass === ""){
//如果是"",默认父类为AObject,为什么这么做,还不便说清楚,以后再详细说明理由吧!
superClass = window["AObject"];
}
var clazz = __newClass();
clazz.prototype = new superClass(); //这是模拟继承的关键语句
window[className] = clazz;
classImp.apply(clazz.prototype);
}
//---- 基础支持代码结束 ----
_class("AObject", null, function(){
this._init = function(){
this._disposed = false;
};
this.dispose = function(){
this._disposed = true;
};
});
13、继承机制已经实现,下面就是如何方便的调用父类同名方法了,_super关键字登台
function __newClass(){
return function(){
this._init.apply(this, arguments);
};
}
function _class(className, superClass, classImp){
if(superClass === null){
superClass = Object;
}else if(superClass === ""){
superClass = window["AObject"];
}
var clazz = __newClass();
clazz.prototype = new superClass();
var _super = superClass.prototype; //原来_super的含义只是这个
window[className] = clazz;
classImp.apply(clazz.prototype, [_super]);
}
_class("AObject", null, function(){
this._init = function(){
this._disposed = false;
};
this.dispose = function(){
this._disposed = true;
};
});
//定义一个类,继承自AObject
_class("ClassA", "", function(_super){
this._init = function(){
_super._init.call(this);
this._name = "ClassA";
};
this.dispose = function(){
//就是这么调用父类方法的,看来也不是很简洁,讲究着用吧,总比写出来父类的名
//字的形式要稳定的多!
_super.dispose.apply(this);
};
});
就先写这些吧,整个封装的演化过程已经是历史了,想回忆清楚还真有点难度。^_^
分享到:
相关推荐
MINI MICRO A型B型D型USB封装库USB type-c母座 AD元件库PCB封装库USB封装大全,PcbLib后缀文件,共计 45个封装文件,可以直接应用到你的项目设计中。 封装型号列表如下: TE_TYPE-C _CUI_UJ31-CH-G2-SMT-TR_UJ31-CH-...
TO-252_TO-251A_TO-251A1_TO-251_TO-126_TO-220封装
USB封装大全 USB type-c母座 MINI MICRO A型B型D型USB PROTEL封装库(Protel 99se库) Component Count : 44 Component Name ----------------------------------------------- _CUI_UJ31-CH-G2-SMT-TR_UJ31-CH-G2...
exe封装工具类,官网下载的,2019年10月29日17:43:48 exe4j_windows-x64_6_0_2.zip
RJ45 USB-TYPE-C FPC-40S DB15_VGA封装库 ALTIUM PCB封装库,已在项目中使用,可以做为你的设计参考,封装库型号列表如下; omponent Count : 62 Component Name ----------------------------------------------- ...
常用USB接口封装 MINI USB micro USB 3.1 Type C USB-C-SMD接口2D3D三维视图PCB封装库AD库(28个合集) Component Count : 28 Component Name ----------------------------------------------- Mini-USB N.layout...
PcbLib文件类型、直插元器件、贴片、Altium Designer封装库 USB3.1 Type C接口封装PCB文件3D封装Altium Designer库的型号类型如下,总有你需要的一款: Mini-USB、USB2.0_MICRO-B_1、USB2.0_MICRO-B_2、USB2.0_MICRO...
IMX415-AAQR-C_Datasheet_E19504(1)(1).pdf
USB micro、USB Type C接口 Altium封装 AD封装库 2D+3D PCB封装库26个(AD封装库).PcbLib, Component Count : 26 Component Name ----------------------------------------------- 1MARK USB_2x USB_A/P_A USB_A...
自封装ESXi-6.7.0-20201004001-standard-customized.iso
USB扁口方口座MIN MICRO USB座 USB3.0座3D PCB封装库(AD库 3D封装库), 详细封装型号如下: Component Count : 16 Component Name ----------------------------------------------- USB_A/P_A USB_micro USB-A/S...
RJ-45_8x8(8口) RJ-45_GBE RJ-45_LED带灯网口插件封装库(AD PCB封装库)
4G5G模块MSATA盘(M.2_B-KEY+M.2_E-KEY 封装) AD集成封装库,已经其他一些USB3.0 ,RJ45 ,SD卡等,详细封装型号如下: Component Count : 69 Component Name ----------------------------------------------- ...
PcbLib文件类型、直插元器件、Altium Designer封装库 DIP直插封装库PCB文件3D封装Altium Designer库的型号类型如下,总有你需要的一款: DIP4-300、DIP6-300、DIP8-300、DIP8-300_MH、DIP14-300、DIP14-300_MH、DIP...
通讯接口类Altium封装库AD三维视图PCB封装库(2D3D封装库),封装列表如下:omponent Count : 39 Component Name ----------------------------------------------- BM4-M003-B BM4-M003-BK BM4-M003-G BM4-M003-R ...
目前X3插件框架包括插件内核部分(插件基础、插件管理器、Observer管理器插件、日志管理器插件)和实用技术插件(XML读写封装插件、数据库操作封装插件、文件操作实用插件、文本操作实用插件、本地化字符串表插件等...
STM32系列单片机PCB封装库,PCBLOUT用
压缩,使文件变小,与ZIP压缩机制完全相同。 包封装。能够让JAR包里面的文件依赖于统一版本的类文件。 可移植性,能够在各种平台上直接使用。 把一个JAR文件添加到系统的classpath环境变量之后,java通常会把这个...
libmysql库,封装了mysql的C++接口,mysql为常用数据库,希望大家用得到
RJ11 、RJ45、VGA接口 Altium封装 AD封装库 2D+3D PCB封装库43个(AD封装库)封装列表: Component Count : 43 Component Name ----------------------------------------------- BM4-M003-B BM4-M003-BK BM4-M003...