一、多态的含义
不同数据类型进行同一个操作,表现出不同的行为,就是多态的体现
二、传统意义的多态
function Shape{getArea(){}}function Circle extends Shape{getArea(){return 100}}function Rectangle extends Shape{getArea(){return 1000}}function calcArea(shape:Shape){return shape.getArea()}const r = new Rectangle()const c = new Circle()calcArea(r)calcArea(c)
传统意义的多态有三要素:
- 继承是前提
- 子类要对父类的方法进行重写
- 父类的引用指向子类实例
三、js中的多态
function sum(m,n){return m+n}sum(10,20)sum("abc","cba")
上述的代码是符合多态的定义的
所以js中是有多态的,但和传统的多态不一样,因为它很灵活,所以可以传入不同的数据类型执行同一个方法。
