楼主最好贴出代码,方便对你作出回答的人调试代码,对人对己都有利,你不可能让大家都对着图片重打一遍你的代码,是吧?
补充: 因为你在代码里面只有一个property,对于新手来讲,不足以造成疑惑,个人感觉,我猜楼主想要搞清楚如下代码的输出:
function superT () {
this.p = true
}
superT.prototype.getP = function(){
return this.p
}
function subT() {
this.p = false
}
subT.prototype = new superT()
var ins = new subT()
console.log(ins.getP())
这边输出的是false,而你的代码输出的是true
等待楼主对我的疑问进行确认
怎么 看 都 不可能是 false 吧
先不说 原型链 的 问题
就拿 getSuperValue 方法 里面 this.property 和 函数 SubType 里面的 this.subProperty 前者 是 访问 当前 调用 对象 的 property 属性 后者 是 设置 当前调用对象 subProperty 属性 两个 属性 名 都 不一样
如果 属性 名 一样 的 话 那 输出 就是 false
10 回答11.2k 阅读
5 回答4.8k 阅读✓ 已解决
4 回答3.1k 阅读✓ 已解决
2 回答2.7k 阅读✓ 已解决
3 回答2.3k 阅读✓ 已解决
3 回答2.2k 阅读✓ 已解决
2 回答2.6k 阅读✓ 已解决
楼主应该是想做这样吧,new SubType()之后,instance有属性property,原型链上有属性property和方法getSuperValue。

在调用方法和属性是一层一层往上找,所以自然是false,如果按楼主所展示的,那肯定是true。