导出函数调用另一导出函数无预期输出,请求修复指导
问题分析与修复方案
我一眼就看出问题所在啦——你的initialization是个高阶函数:它本身执行后会返回另一个函数,但你目前只调用了外层的initialization(),却没有执行它返回的那个内部函数!这就是控制台只输出called 1.、called 2.没出现的核心原因。
下面给你两种针对性的修复方案,你可以根据自己的需求选择:
方案一:执行initialization返回的函数
如果你需要保留initialization的高阶函数设计(比如要利用闭包保留someInnerFunc的上下文),只需要在第一个函数里修改调用方式,把返回的函数也执行一遍:
import initialization from './initialization'; export default (a, b) => { console.log('called 1.') // 先调用initialization拿到返回的函数,再执行这个函数 initialization()(); };
方案二:修改initialization的写法(直接执行逻辑)
如果你的initialization不需要返回函数,只是想直接执行内部的打印逻辑,那可以简化它的代码:
// initialization/index.js export default () => { function someInnerFunc() { //... } // 直接执行打印操作,无需返回函数 console.log('called 2.'); };
这样原来的initialization();调用就能直接输出called 2.了。
内容的提问来源于stack exchange,提问作者Denis Stephanov
相关产品推荐
相关产品推荐

