js对象继承的问题

wodeshuangyuzuo 2011-07-27 09:38:01
如下代码:
function SuperType(name){
this.name=name;
this.colors=["red","blue","green"];
}
SuperType.prototype.sayName=function(){
alert(this.name);
};
function SubType(name,age){

SuperType.call(this,name);//这里面的代码当我创建构造函数的时候,this不就是我new的对象吗,然后调用SuperType()函数,增加了个name属性
为什么我new SubType的时候,书上说,其实是调用SuperType的构造函数
this.age=age;

}
SubType.prototype=new SuperType();
var ins=new SubType("tiantian",29);
...全文
109 3 打赏 收藏 转发到动态 举报
写回复
用AI写文章
3 条回复
切换为时间正序
请发表友善的回复…
发表回复
长笛党希望 2011-07-27
  • 打赏
  • 举报
回复
学习下。。。。
豆虫 2011-07-27
  • 打赏
  • 举报
回复
SuperType.call(this,name);

这个this是一个作用域的问题 call了SuperType的构造函数时 SuperType中
的this.name 中的this不是指代SuperType这个对象 而是指代当前SubType对象
这也就是call方法的用法
MuBeiBei 2011-07-27
  • 打赏
  • 举报
回复
当你new SubType的时候,就是在执行function SubType(name,age)这个函数

这函数里面第一句话就是
SuperType.call(this,name);

SuperType函数也被执行了

嗯this就是你当前的这个对象ins

87,990

社区成员

发帖
与我相关
我的任务
社区描述
Web 开发 JavaScript
社区管理员
  • JavaScript
  • 无·法
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧