在组件外部反应功能

时间:2017-05-22 00:30:07

标签: reactjs components

在react中声明组件外部和内部函数有什么区别?the 'foo' function in the picture

1 个答案:

答案 0 :(得分:1)

这些差异并不是React特有的。可以认为组件内部函数的声明与普通JS类中函数的声明相同。

考虑到这一点,差异是:

    在游戏中声明的
  • foo()将成为Game的任何新实例的成员,并且可以像Game.foo()一样进行寻址。如果导出游戏组件,这会导致它暴露在模块外部。如果你希望foo()是私有的以便更好地封装,那么最好在Game之外声明它。

  • 如果在游戏中声明foo(),则有点暗示它可能有权访问Game的其他成员。你仍然必须在foo()上绑定(this)来做到这一点。所以实际上,在Game中声明的foo()没有比在外面声明的foo()更好地访问Game成员。 (你可以绑定(这个)其中任何一个。)但这是一种暗示访问的约定 - 考虑可读性和保持正确。

毫无疑问我忘记了什么,但我认为这就是它。