原型及原型链
原型:当我们创建一个对象的时候,系统都会给它自动关联另一个对象,这个对象就是所说的原型,每一个对象都会从原型中继承属性和方法;
原型用来解决共享属性和方法的问题;
每一个构造函数都拥有prototype属性,
每一个对象都通过构造函数new出来,都拥有__proto__属性;
构造函数的prototype属性等同于对象的__proto__;
对象通过constructor指回构造函数;
function fn() { }
let ob = new fn()
console.log(fn.prototype === ob.__proto__) // true
console.log(ob.constructor) // ƒ fn() { }
对象在查找一个属性或方法的顺序:对象本身 -->构造函数 -->对象的原型–>构造函数的原型prototype–>当前原型的原型
查找的过程就是顺着原型链去查找;
原型链把原型串起来,原型链的顶端是null;