Javascript 对象在编程中的作用能否与高阶组件在React中的工作方式相比较
我是编程新手,在学习了一些JS之后,我决定做一些React。坦白地说,在我学习OOP的过程中,我无法正确理解对象的概念,因此决定继续学习,希望以后我能理解这个概念。后来,我在React中遇到了HOC的概念,它基本上帮助我们在React应用程序中重用特定的逻辑,也就是说,如果我们在多个地方使用了悬停逻辑,那么就是在我们创建HOC并在使用悬停逻辑的任何地方重用它的时候。我唯一的主要问题是面向对象编程中的对象是否以相同的方式工作,也就是说,每当我们在多个地方使用某个逻辑时,我们需要创建一个对象,然后再重用它。我可以认为OOP中的对象像AOC一样反应吗? 面向对象编程依赖继承作为一种技术,在父子层次结构中的对象之间共享代码。父子层次结构的严格树状本质意味着,遇到这种情况并不罕见 在本例中,Javascript 对象在编程中的作用能否与高阶组件在React中的工作方式相比较,javascript,reactjs,oop,Javascript,Reactjs,Oop,我是编程新手,在学习了一些JS之后,我决定做一些React。坦白地说,在我学习OOP的过程中,我无法正确理解对象的概念,因此决定继续学习,希望以后我能理解这个概念。后来,我在React中遇到了HOC的概念,它基本上帮助我们在React应用程序中重用特定的逻辑,也就是说,如果我们在多个地方使用了悬停逻辑,那么就是在我们创建HOC并在使用悬停逻辑的任何地方重用它的时候。我唯一的主要问题是面向对象编程中的对象是否以相同的方式工作,也就是说,每当我们在多个地方使用某个逻辑时,我们需要创建一个对象,然后再
Scanner
和Printer
继承自PoweredDevice
<代码>复印机需要共享扫描仪
和打印机
的行为,但在大多数面向对象编程语言中,不允许从双亲继承
其他语言和库支持一种称为组合的技术,作为继承的替代方法。React属于这一类。您可以使用高阶组件定义任意多个可重用行为,然后将它们全部应用于组件
功能复印机(){
返回(
// ...
)
}
使用扫描仪导出默认值(使用打印机(应用)))
您仍在创建层次结构,但在运行时动态创建它们。没有任何静态规则规定,with printer
必须是with poweredDevice
的子级,这与传统继承不同,传统继承在编写类时(编译之前)必须定义层次结构
React文档甚至提供了一个文档,其中说明了这是一个进行阅读以理解两种范式之间差异的好地方
总结如下:
- OOP和HOC都支持代码重用
- OOP类只能从一个父类扩展
- React组件可以用任意数量的HOC包装
- OOP只允许沿静态编译时层次结构重用
- HOCs支持跨动态运行时层次结构的重用
,你将创建一个HOC(仍为逻辑重用,但为更高阶)。谢谢Dan的友好回答。问这个问题的原因是为了正确理解对象,为什么我们要在OOP中关心它们?那么,OOP中的对象确实包含了某种逻辑,我们可以反复使用它,而不是在多个地方复制和粘贴该逻辑。因此,如果我们在该逻辑中发现错误,那么好处将是c代码我们只需要更改一个位置(即对象),那么使用该对象的所有位置都将自动更改。这是真的吗?请Dan我真的需要您的帮助是的,您确实可以通过继承在OOP中共享代码,这意味着修复父类中的错误将修复所有子类中的相同错误。