关于前端:Js-javascript中的原型链02-prototypeconstructor

这是构造函数和构造函数的prototype之间的关系

Person.prototype.constructor === Person; // true

那么对Person创立的实例对象p1
p1.__proto__.constructor === Person; // true

在浏览器控制台中输出如下代码

function Person(name) {
this.name = name;
}

Person.prototype.sayHello = function() {
console.log(`Hello, ${this.name}!`);
}

const p1 = new Person("Mike"); // 实例对象p1

console.log("p1->", p1)

查看输入

实例对象p1有一个外部属性[[Prototype]], 其用于寄存该对象对应的_proto。
对象的外部属性[[Prototype]]是无奈被间接拜访的,须要通过p1.__proto__属性或者 Object.getPrototypeOf(p1)办法来拜访。

开展p1的[[Prototype]]
(p1.__proto__ === Person.prototype 实际上看的是Person的prototype属性)

橙框中是Person.prototype

再看上来

能够看到蓝框中咱们本人定义的sayHello办法。
也能够看到Person.prototype.constructor 指向Person自身。
还能看到Person.prototype.__proto__ 这个属性指向Object.prototype

其余:
console.log(“Person.__proto__->”, Person.__proto__)

同步更新到本人的语雀:
https://www.yuque.com/dirackeeko/blog/gpbe3gy7zcyc6l0l

评论

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

这个站点使用 Akismet 来减少垃圾评论。了解你的评论数据如何被处理