前言:function具有prototype属性,function是一种特殊的对象
对象都具有__proto__(内置的原型),一般没有prototype属性(Object除外)
Object对象 是所以对象最根部的原型
<script>
var a = {};
function b(){};
var c = new b();
b.prototype.frpm="sad";
console.log(Object); // ƒ Object() { [native code] } (Object是一种特殊的函数)
console.log(a.prototype); // undefined (a属于对象)
console.log(Object.prototype); // Object
console.log(Object.prototype.__proto__); // null 证明Object是所有对象最底层的原型
console.log(a.__proto__);// Object
console.log(a.__proto__ == Object.prototype); // true
console.log(b.prototype); // {frpm: "sad", constructor: ƒ}
console.log(b.prototype.__proto == Object.prototype); // true
console.log(c.prototype);// undefined
console.log(c.__proto__ == b.prototype); //true
</script>
对象只有 __proto__
属性来调用构造函数的属性prototype
所引用的原型对象,
所有实际上它们调用的都是对象