问两个js的问题,百思不得其解。。。非常感谢

普鲁士骷髅骑兵 普鲁士骷髅骑兵 墨衍会员 · AI 创作全网分发 墨衍智能分发 通过墨衍一键同步至各平台 可同步平台 CSDN微信公众号微博知乎掘金百家号博客园抖音小红书 你的文章也可以这样分发 墨衍会员 ¥399起/年,写一次发全网 我也要 + 加入社区
一

function inheritPrototype(SubType,SuperType){
var prototype=Object.create(SuperType.prototype);
prototype.constructor=SubType;
SubType.prototype=prototype;
}
function SuperType(name){
this.name=name;
his.colors=["red","blue","green"];
if(this.sayName==undefined){
SuperType.prototype.sayName=function(){
alert(this.name);
};
}
}
function SubType(name,age){
SuperType.call(this,name);
this.age=age;
if(this.sayAge==undefined){
inheritPrototype(SubType,SuperType);
SubType.prototype.sayAge=function(){
alert(this.age);
};
}
}
SubType.prototype.test=function(){};
var sub1=new SubType("RRR",30);
var sub2=new SubType("KKK",95);
sub1.sayName();
sub2.sayAge();

打算用this.xxx把原型对象函数封装在构造函数内。一个构造函数的时候没有任何问题,为什么写继承就报错说sub1的sayName没有定义?

二

function Rectangle(x,y){
var x=x;
var y=y;
if(Rectangle.prototype.getX==undefined){
Rectangle.prototype.getX=function(){
return x;
};
Rectangle.prototype.getY=function(){
return y;
};
}
}
var rec1=new Rectangle(1,3);
var rec2=new Rectangle(99,100);
alert(rec1.getX());
alert(rec2.getY());

为什么返回的总是rec1的属性?
...全文
评论 8
收藏 已收藏
分享
返回顶部
普鲁士骷髅骑兵
JavaScript 87,984 成员 224,681 内容