js原型关系详解与属性继承实例
User.protype 是显示原型属性,只有函数才有
隐式原型属性指向自己缔造者的原型对象
<script>
// // 一个函数对象结构
function User(){}
//函数的隐式原型是ƒ anonymous(),ƒ anonymous()是一种类型,匿名函数类型
console.dir(User.__proto__);
//说明函数的隐式原型ƒ anonymous()也是一个对象
console.dir(User.__proto__.__proto__);
//所以
console.dir(User.__proto__.__proto__ === Object.prototype); //true
//-----------------------------------------------------------------
//所有对象的隐式原型的最终就是Object.prototype
console.dir(Object.prototype.__proto__); //null
//函数的原型属性里面有一个构造函数constructor
console.dir(User.prototype);//Object
//函数的原型属性是对象
console.dir(User.prototype.__proto__ === Object.prototype);//true
//函数的原型属性里面有一个构造函数constructor又是一个函数,一致循环下去
console.dir(User.prototype.constructor);//ƒ User()
console.dir(User.prototype.__proto__ === Object.prototype);//true
console.dir(User.__proto__);//ƒ anonymous()
//匿名函数类型也是一个对象
console.dir(User.__proto__.__proto__);
// // new 一个函数对象
// let hd = new User();
// console.log(hd);
// console.dir(User);
// let ob = new Object();
// console.dir(Object);
// console.dir(Object.__proto__);
// console.dir(Object.prototype === Object.__proto__);
// let arr = [];
// console.dir(arr);
// console.dir(Array.prototype);
</script>