同级函数调用与作用域疑问:是否需要将函数作为props传递?
你当前的场景下可以直接在function2中调用function1,不需要将function1作为props传递。
你的两个函数都定义在App组件的同一作用域下,遵循JavaScript的词法作用域规则,同作用域内声明的函数可以直接互相访问,这是JS的原生特性,和你是否通过App向下传递props没有关联。
props传递的适用场景是你需要在App的子组件内部调用function1的时候,才需要把function1作为props传给对应的子组件,和你当前同一组件内的函数调用场景无关。
你提供的代码稍作语法修正(函数声明需要补全参数括号)后是完全可用的:
function App(props) { function function1() { // 你的业务逻辑 } function function2() { // 直接调用即可,无需额外处理 function1(); } // 组件其余渲染、逻辑代码 }
两种常见场景的处理区分:
- 同一组件内部的函数互相调用:直接按JS作用域规则调用即可,不需要使用props传递
- 跨组件调用(子组件内调用父组件定义的方法):需要将父组件的方法作为props传递给子组件使用
内容的提问来源于stack exchange,提问作者Jon
相关产品推荐
相关产品推荐

