其实JavaScript的原型最好的用法就是运用在面向对象编程的继承中,今天就来给你们讲一下,几种经常使用的原型继承运用方法。编程
原型继承:每个构造函数都有prototype原型属性,经过构造函数建立出来的对象都继承自该原型属性。因此能够经过更改构造函数的原型属性来实现继承。浏览器
在JavaScript中,继承的方式有多种,能够一个对象继承另外一个对象,也能够经过原型继承的方式进行继承。函数
接下来给你们演示讲解一下几种继承方式:prototype
1.简单混入继承3d
直接遍历一个对象,将全部的属性和方法加到另外一对象上。调试
2.混入式原型继承cdn
混入式原型继承其实与上面的方法相似,只不过是将遍历的对象添加到构造函数的原型上。对象
咱们能够利用面向对象的思想,将面向过程进行封装。blog
替换式原型继承,在上面已经举过例子了,其实就是将一个构造函数的原型对象替换成另外一个对象。继承
替换式原型继承时的bug
替换原型对象的方式会致使原型的constructor的丢失,constructor属性是默认原型对象指向构造函数的,就算是替换了默认原型对象,这个属性依旧是默认原型对象指向构造函数的,因此新的原型对象是没有这个属性的。
当咱们想把对象1做为对象2的原型的时候,就能够实现对象2继承对象1。前面咱们了解了一个属性:proto,实例出来的对象能够经过这个属性访问到它的原型,可是这个属性只适合开发调试时使用,并不能直接去替换原型对象。
因此这里介绍一个新的方法:Object.create()。
语法:var obj1 = Object.create(原型对象);
示例代码:让空对象obj1继承对象obj的属性和方法
利用浏览器的能力检测,若是存在Object.create则使用,若是不存在的话,就建立构造函数来实现原型继承。