alzuiパッケージの進化過程(続)--継承機構と_を含むsuperキーワード


11、クラスの形式定義を振り返ってみます.(ルートの雛形は基本的に形成されています.)
_class("AObject", function(){
	this._init = function(){
		this._disposed = false;
	};
	//                 ,          
	this.dispose = function(){
		this._disposed = true;
	};
});
12、設計ベースクラスの目的は継承のためであり、基礎サポートコードを調整して継承をサポートする必要がある.
_にありますclass関数の2番目のパラメータ位置には、現在のクラスの親クラスを参照するためのパラメータsuperClassを追加し、2番目の位置に置くことが目的であり、主に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、継承メカニズムが実現されました.以下は父親の同名の呼び方を簡単に呼び出す方法です.スーパーキーワードが登場

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);
	};
});
先にこれらを書きましょう.パッケージ全体の進化過程はもう歴史です.思い出したいのはちょっと難しいです.