怎么理解原型?
总结内容:
- 所有对象都可以通过__proto__属性找到Object
- 所有函数都可以通过__proto__属性找到Function (fn.prototype.__proto__)
- 函数的prototype属性是一个对象
- 对象的__proto__属性指向原型,__proto__将对象和原型连接起来组成了原型链
并不是所有函数都有prototype属性,
原型链就是多个对象通过__proto__的方式连接了起来,这样普通对象可以使用valueOf函数,就是普通对象能够通过原型链找到valueOf函数。
原型实现继承,在子类的构造函数中调用父类,并使用Parent.call(this,value),在父类的原型上绑定属性和方法,既可以指定参数,也可以让子类继承到父类的属性和方法。
ES6的class继承,使用extends继承父类的属性和方法。