var orchard = function (){ //Base 型コンストラクターproxy static メソッドはすべてプロキシ関数上にあります
this.constructor && this.constructor.apply(this,arguments)
};
orchard.extend = function() {
varparentObj = this;
varparameters =parentObj.parameters ?
parentObj.parameters.concat(_.toArray(arguments)) : _.toArray(arguments){ //継承型コンストラクター プロキシ
var newparameters =parameters.concat(_.toArray(arguments));
this.constructor && this.constructor.apply(this,newparameters);
_.extend( thisObj,parentObj );
_.extend(thisObj.prototype,parentObj.prototype);
thisObj.base = thisObj.prototype.base =parentObj; function
thisObj.supper = thisObj.prototype.supper =parentObj.prototype; //基本型のコンストラクター クラスのメンバーはすべてコンストラクター上にあります
return thisObj>}; = function( object){
if(typeof object === "未定義") object = {constructor: function(){}};
this.prototype = object.constructor;コンストラクター = this .prototype;
for(this.base の変数名)
if(typeof this[name] === "未定義")
this[name] = this.base[name];
for(this.supper の変数名)
if(typeof this.prototype[name] === "未定義")
this.prototype[name] = this.supper[name]; >for( var i = 0; i
_.extend(this.prototype,arguments[i]);
this.prototype.base = this.base; this.prototype .supper = this.supper;
this.supper を削除;
orchard.definenew = function(); 🎜>var newclass = this.extend();
return define.apply(newclass,arguments)
};
コードをコピーします
コードは次のとおりです:
var person = orchard.definenew({
constructor: function(name){
this.name = name;