理论上讲,JavaScript
中继承是依赖于原型prototype
链实现继承的。由于只有一条链所以理论上讲无法实现多继承。但是我们可以另辟蹊径
多继承
先从继承单对象属性说起
1 | // 单继承 属性复制 |
这是对对象中属性的一个浅复制的过程,同样的,继承也是一样的原理。
实现
所以既然无法通过原型链完成多继承,那么我们就通过对其属性的复制来完成继承
1 | var mix = function(){ |
最后说明一点,由于我们本身只是对概念的一个论述,所以就只讲浅复制了。今后我闲下来没事儿干的时候再码一下深复制的代码
多态
多态,顾名思义,同于i个方法具有多种调用方式。
在JavaScript
中若想实现多态我们需要对传入的参数加以判别,以此来实现OOP
中的多态。
我们举个栗子:根据传入参数个数的不同来返回不同的结果——传入一个参数则返回其加10后的值,传入两个参数则返回二者之和
1 | function Add(){ |