【发布时间】:2016-08-10 00:46:30
【问题描述】:
我在下面有这段代码:
function me(){
this.age=30,
this.say=function(){return 'hello me'}
}
function child(){
this.hobby='sports'
}
child.prototype=new me();
var son=new child();
son.prototype=new me();
console.log(son.age);//30
console.log(son.__proto__.age);//30
console.log(son.constructor.prototype.age);//undefined
console.log(son.constructor.prototype.say())//exception
打印结果是,只有前2条日志打印出“30”,其他都打印出“undefined”,最后一行甚至在运行时抛出异常。
(1) 我期待他们都应该给我输出。为什么第三行打印“未定义”?
(2) 我希望 "proto" 和 "constructor.prototype" 具有相同的效果,但实际上并非如此。
【问题讨论】:
-
您没有创建新的
son。我建议和你的妻子谈谈。 -
我刚刚修好了,见上面更新了,还是有问题。
标签: javascript constructor prototype instance proto