prototype: 原型
__proto __: 原型链
从属关系
prototype: 函数的一个属性,每一个函数默认都有一个prototype属性
function Foo() {
this.a = 10
}
Foo.prototype = {
aa: 100
}
let foo = new Foo();
console.log(foo.aa) // 100
__ proto__ :Object的一个属性
对象的__proto__保存着该对象的构造函数的prototype
function Foo() {
this.a = 10
}
Foo.prototype = {
aa: 100
}
let foo = new Foo();
console.log(foo.__proto__ === Foo.prototype) // true
prototype为函数的一个属性对象,对象就会有__proto__属性
console.log(Foo.prototype.__proto__ === Object.prototype) // true
console.log(Object.prototype.__proto__) // null
原型链继承
当在对象中找不到属性时就会向他的__protp__中去找
Fuction和Object关系
Fuction.__ proto__ === Fuction.prototype
console.log(typeof Object) //Fuciton
Object.__proto__ === Fuction.prototype //true
Object.__proto__ === Fuction.__ proto__