什么是原型
所有引用类型都有一个——proto——表示隐式原型,属性值是一个普通的对象
所有函数都有一个prototype(原型),属性值是一个普通的对象
所有引用类型——proto——属性指向 它构造函数的prototype
通俗的讲就是每一个对象都有一个属性(——proto——,prototype)指向它的原型对象,他可以使用自己原型对象上的属性和方法
用图片可表示为
代码案例
function F() {}
F.prototype.a = 10
obj = new F()
console.log(obj.a)
console.log(obj.__proto__ ===F.prototype)
结果
什么是原型链
当一个对象去调用自身不存在的属性和方法时就会去自己的proto的前辈prototype对象上去找,如果没找到就会去prototype的前辈上去找 最终会查到到object的原型上去找,如果在object上还没找到就会返回undefiend, 这个查找的过程就是原型链.
通俗的讲就是原型还有原型,原型还有原型,最终指向object的原型
代码演示
function F() {}
function F1() {}
Object.prototype.a = 10
F.prototype = new F1()
obj = new F()
console.log(obj.a)