请问这段代码是什么意思?

代码如下:

const requireAll = requireContext => requireContext.keys().map(requireContext)
const req = require.context('./svg', false, /\.svg$/)
requireAll(req)

keys方法返回的是一个Array Iterator,map方法里面的参数应该是一个函数才对,这两个结合在一起好难理解是干嘛的

阅读 5.3k
3 个回答

require.context('./svg', false, /.svg$/)的返回值就是一个函数--类似require()的函数,这个函数有个keys方法,该方法的返回值是一个数组--要引入的模块的文件名数组,这个数组调用map方法,实参requireContext就是上面说的类require()的函数,所以map操作就是逐项引入模块.

我拆分写给你看 应该就清晰了

const requireAll = requireContext => {
    requireContext.keys().map(requireContext)
}

第一段其实是这样的,只不过简写了,其中keys()的意思就是 整理requireContext 不管这个是Object还是Array 都把key值整理出来变成一个数组,在通过map去循环。
第二段就没什么好解析了。。就是获取函数返回的值

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题