JavaScript 中的混入

JavaScript 中的混入

Photo by 阿列克谢·鲁班 on 不飞溅

介绍

在继承中,大多数编程语言不支持多级继承,这意味着您不能为特定类拥有多个父级。 Javascript 也不支持多级继承,因此在安排代码库时会有一些障碍。

例如,假设我们有一个 男人 类及其父类是 现在有一个定义的关系但是如果你有一个实用程序类 授权 既不相关 或者 男人 类,那么什么是更好的使用方法 授权 男人 班级?

有很多方法可以解决问题

  • 依赖注入
  • 创建单独的实用程序并在方法中传递值
  • 创造 男人 实例来自 授权 班级

我们将在本文中使用方法三,我们将使用 mixin 作为所有三个类之间的虚拟关系

什么是混音?

Mixin 是一个更高级别的函数或类声明,它具有可以抽象为任何子对象(类或对象)的内部方法和属性

创建一个 Mixin

有两种方法可以创建 mixin

  • 对象声明
  • 类声明

对象声明

我们可以创建一个具有方法和属性的对象,并使用它来更新任何现有类的原型以附加

We created a mixin that will be prototyped to Person class instance and we will be using its methods

Object-based mixin

我们创建了一个 mixin,它将管理授权并将其附加到其原型上的 person 类,并且可以从 person 实例中访问它

类声明

要创建一个类 mixin,我们需要为任何子级类创建一个父类,在我们的示例中,我们需要同时创建 Person 和 Man 类,并从虚拟 Person 类扩展 Man

We created a virtual class that will act as a mixin and extend the virtual class for our child class

class-based mixin

当您在图片中有继承并且可以将属性添加为类自己时,这种类型的声明很有帮助

两种mixin的区别

两种 mixin 之间的主要区别在于何时何地使用它们。当您可以使用一些常用方法并且希望将其附加到任何现有类中时,基于对象的混合是一个更好的选择

另一方面,当您从任何抽象类创建子类时,基于类的混入很好

结论

Mixin 通常适用于辅助方法而不是实际的实例方法,如果您的应用程序有实例方法,那么我建议不要创建 mixin,而是创建类。

你可以找到源代码 这里 .快乐编码!

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明

本文链接:https://www.qanswer.top/37366/14121802

posted @ 2022-09-18 02:14  哈哈哈来了啊啊啊  阅读(94)  评论(0编辑  收藏  举报