废话不多说,直接上代码!
<script>
function Person(){}
const p = new Person();
//p 就是 Person 实例对象
console.log(p.__proto__ === Person.prototype);
/*
构造函数Function实例对象
构造函数的显示原型(prototype),指向原型对象
实例对象的隐式原型(__proto__),指向原型对象
*/
console.log(Person.prototype);
console.log(p.__proto__);
console.log(Person.prototype === p.__proto__);
//Person的原型对象也是一个对象,也有一个属性(__proto__)
console.log(Person.prototype.__proto__);
//Object的原型对象,还是有一个属性 __proto__
console.log(Person.prototype.__proto__.__proto__);
//Object的原型对象
console.log(Person.prototype.__proto__ === Object.prototype);
//自定义构造函数 也是 Function的实例对象
console.log(Person.__proto__ === Function.prototype);
//Object 也是 Function 的实例对象
console.log(Object.__proto__ === Function.prototype);
//Function 也是 Function 的实例对象
console.log(Function.__proto__ === Function.prototype);
//Function的原型对象
console.log(Function.prototype);
console.log(Function.prototype.constructor);
//Function的原型对象也是对象 __proto__
console.log(Function.prototype.__proto__);
</script>
再上一波测试结果图
为了让大家看懂,画个图来看看