constructor的指向问题?

h123hu 2012-03-17 05:11:22

function Odemo1(){}

Odemo1.prototype.sayName=function(){}

function Odemo2(){}

Odemo2.prototype=new Odemo1();

var a=new Odemo2();

alert(a instanceof Odemo1); //显示true
alert(a instanceof Odemo2); //显示true
alert(a instanceof Object); //显示true

alert(a.constructor==Odemo1); //显示true
alert(a.constructor==Odemo2); //为什么这里显示false

alert(Odemo1.prototype.isPrototypeOf(a)); //显示true
alert(Odemo2.prototype.isPrototypeOf(a)); //显示true



问题如以上代码所示,
说白了,为什么a.constructor指向的是Odemo1
a不是Odemo2的实例对象么?
...全文
75 1 打赏 收藏 转发到动态 举报
写回复
用AI写文章
1 条回复
切换为时间正序
请发表友善的回复…
发表回复
Acesidonu 2012-03-17
  • 打赏
  • 举报
回复
Odemo2.prototype=new Odemo1(); // 重写Odemo2的原型,就是让Odemo2继承Odemo1,Odemo1.prototype.constructor指向Odemo1,所以Odemo2也是一样的。

87,914

社区成员

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

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