在react中声明组件外部和内部函数有什么区别?the 'foo' function in the picture
答案 0 :(得分:1)
这些差异并不是React特有的。可以认为组件内部函数的声明与普通JS类中函数的声明相同。
考虑到这一点,差异是:
foo()将成为Game的任何新实例的成员,并且可以像Game.foo()一样进行寻址。如果导出游戏组件,这会导致它暴露在模块外部。如果你希望foo()是私有的以便更好地封装,那么最好在Game之外声明它。
如果在游戏中声明foo(),则有点暗示它可能有权访问Game的其他成员。你仍然必须在foo()上绑定(this)来做到这一点。所以实际上,在Game中声明的foo()没有比在外面声明的foo()更好地访问Game成员。 (你可以绑定(这个)其中任何一个。)但这是一种暗示访问的约定 - 考虑可读性和保持正确。
毫无疑问我忘记了什么,但我认为这就是它。