Object.prototype.inheritFrom=function(fnClass){
function inheritClasses(fnClass,arrClasses){
arrClasses.push(fnClass);
if(typeof fnClass._superclasses_=="object"){
for (var i=0; i < fnClass.__superclasses__.length; i++){
inheritClasses(fnClass.__superclasses__[i], arrClasses);
}
}
}
if(typeof this.constructor._superclasses_=="undefined"){ this.constructor._superclasses_=new Array();
}
inheritClasses(fnClass,this.constructor._superclasses_);
for(prop in fnClass.prototype){
if(typeof fnClass.prototype[prop]=="function"){
this[prop]=fnClass.prototype[prop]; }
}
} 比如说classB.prototype.inheritFrom(classA),但classA根本没定_superclasses_这个属性,也就是undefined,那么inhertClasses方法里面的if怎么执行啊?
function inheritClasses(fnClass,arrClasses){
arrClasses.push(fnClass);
if(typeof fnClass._superclasses_=="object"){
for (var i=0; i < fnClass.__superclasses__.length; i++){
inheritClasses(fnClass.__superclasses__[i], arrClasses);
}
}
}
if(typeof this.constructor._superclasses_=="undefined"){ this.constructor._superclasses_=new Array();
}
inheritClasses(fnClass,this.constructor._superclasses_);
for(prop in fnClass.prototype){
if(typeof fnClass.prototype[prop]=="function"){
this[prop]=fnClass.prototype[prop]; }
}
} 比如说classB.prototype.inheritFrom(classA),但classA根本没定_superclasses_这个属性,也就是undefined,那么inhertClasses方法里面的if怎么执行啊?
this.constructor._superclasses_ = new Array();
}
如果为 undefined 就初始化为 new Array()