js原型和原型链
js中万物皆对象,对象分为函数对象和普通对象,函数对象就是new Function() 创建的对象,其他都是普通对象。
在js中函数有个属性 prototype, 指向函数原型对象 prototype,函数才有prototype,普通对象没有,但是有__proto__属性。
那原型链是什么鬼?
实际上js没有继承,但是__proto__却起到了类似继承的作用。我们所知的所有的对象起源都是一个空对象,我们把这个空对象叫做原始对象。所有的对象通过__proto__回溯最终都会指向这个原始对象。