有关JS定义接口的方法,鸭式辩型法,有没有大神可以给我详细的解释一下

最近在看一个有关定义接口的东西,结果看到了鸭式辩型法我就迷糊了,JS没有像java那样有interface方法,求大神给详细解释一下鸭式辩型法一般实现接口的步骤和 一些逻辑

阅读 3.4k
2 个回答

这个没有什么实现接口吧,因为这个一般都是最无奈的选择了

我判断A是否为一个数组,如果没有其他办法判断的话,我会判断A是否有length属性,并且有slice方法

都有就认为是数组,但是严格意义上来说,这个东西不一定是个数组

长了两条腿的,会嘎嘎叫的,就(当做)是鸭子。——这就是你所谓的“鸭式辩型法”。

各种语言有各自擅长的领域,而且对于接口这种东西,正如你说的是没有的(而且现在很多语言也在弱化接口的概念)。

接口是什么,是一种约定。所以,所谓的“鸭式辩型法”就是去检测这种约定是否遵守而已。
遵守了,我们就当他实现了某个接口,具体的检测实现的过程是多样的。

JavaScript是脚本语言,属于非编译类型语言,这种约定也是很脆弱的。

所以,不用去纠结JavaScript的接口实现,学习另当别论。

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题