javascript継承のツール関数2


原型の方式によって種類を書いて、つまり属性と方法はすべて原型の上で掛かります.
 
/**
 *    Person
 */
function Person(){
}
Person.prototype.nationality = 'China';
Person.prototype.getNationality = function() {return this.nationality;}
Person.prototype.setNationality = function(n) { this.nationality = n;}
 
exted関数は以下の通りです.すなわち、親の値を作成して、サブタイプの原型に与えます.
/**
 *     ---      
 * @param {Function} subCls
 * @param {Function} superCls
 */
function extend(subCls,superCls) {
	subCls.prototype = new superCls();	
}
サブクラスは以下の通りです
function Man() {}
extend(Man,Person);
サブクラス固有の属性と方法を追加します.
Man.prototype.name = 'jack';
Man.prototype.getName = function() { return this.name;}
Man.prototype.setName = function(n) { this.name=n;}
 
最後のテストコード、
var m = new Man();
console.log(m);
console.log(m instanceof Person);