合规国际互联网加速 OSASE为企业客户提供高速稳定SD-WAN国际加速解决方案。 广告
>[success] # 多态和鸭子 [参考阅读](https://zhuanlan.zhihu.com/p/109334326) ~~~ 1.现在感觉是不是多态和鸭子好像 到底两者区别在哪里, 1.1.多态指的一类事物有多种形态,比如动物有多种形态:猫、狗、猪,像这里'猫、狗、猪'网上推 都是动物,我们是将这一类事物相同的东西提出模型比如他们都会'talk',我们定义了一个入口统一调 用这个talk例如: function talk(animal){ aniaml.talk() } 多态的本质:多态性的本质在于不同的类中定义有相同的方法名,这样我们就可以不考虑类而统 一用一种方式去使用对象,可以通过在父类引入抽象类的概念来硬性限制子类必须有某些方法名 1.2. 鸭子类型:java这种强类型语言需要配合向上转型才能体验到多态,js不一样没有那么复杂的 类型校验,不用你们这些东西属于一类,只要看起来像、叫声像而且走起路来像鸭子,那么它就是鸭子, 这样完全可以不依赖于继承,只需要制造出外观和行为相同对象,同样可以实现不考虑对象类型而使用对象 function car(){ } car.prototype.sound = function() function cat(){ } cat.prototype.sound = function() 汽车和猫明显不是一类 他们都会叫那我就说他们是一类东西 ~~~