老板,你误入歧途了知道吗,简单点,我直接给你上图好吧
实例对象的constructor本来就指向的是其构造函数,这是其一.
其二,constructor诶,大哥,这个属性不是什么obj.a,obj.b,这能跟这些普通属性相比吗,哪有继承的事
顺便说下,我观楼主代码,js大括号风格有点异教风格
默认实例对象的__proto__指向构造函数的prototype
你这样只是修改了函数内部prototype的指向
你试一下把Person.prototype这个放到外面来就可以
function Person() {
}
Person.prototype = {
name: "A",
age: 21
}
10 回答11.2k 阅读
5 回答4.8k 阅读✓ 已解决
4 回答3.1k 阅读✓ 已解决
2 回答2.8k 阅读✓ 已解决
3 回答2.3k 阅读✓ 已解决
3 回答2.2k 阅读✓ 已解决
2 回答2.6k 阅读✓ 已解决
你第一个
true
就是因为重写了prototype
导致constructor
属性指向Object
后面的问题其实就一句话:
constructor
属性指向创建当前对象的构造函数constructor
是定义在原型上面的,所以p.constructor
由于p
没有定义constructor
属性,就会沿着原型链向上找等同于:
Person.prototype.constructor == Person