如何从esModule函数而非平面函数获取数据?

时间:2018-12-05 16:21:17

标签: javascript requirejs angular5 es6-modules

因此,我目前正在使用require获取代表我的组件之一的所有TS文件,以便我将它们用作参考。

this.req = require.context('../../my/context', true, /^\.\/.*\.component.ts$/)

作为服务的一部分,我还有一个名为“ getComponent”的函数,然后我使用传递的文件路径从req获取所需的组件。

const component = this.req(filePath);

在这一点上,如果我在控制台中登录,则会看到一个具有功能及其所有关联数据的对象。看起来像这样:

Object in Console

但是,如果我尝试以编程方式访问此信息,我当然会简单地获得对函数本身的引用:

Function reference in console

有什么方法可以以编程方式访问第一个状态的数据而无需返回对该函数的引用?

1 个答案:

答案 0 :(得分:1)

这只是Chrome如何优化其控制台消息的伪像。

当传递给console.log()的对象只是一个函数时,输出只是该函数的简化视图:

function myFunc() {}
console.log(myFunc);
ƒ myFunc() {}

如果您确实需要查看function对象的内脏,请将其包装在新对象中:

console.log({ myFunc });
{myFunc: ƒ}
  myFunc: ƒ myFunc()
  arguments: null
  caller: null
  length: 0
  name: "myFunc"
  prototype: {constructor: ƒ}
  __proto__: ƒ ()
  [[FunctionLocation]]: VM14940:1
  [[Scopes]]: Scopes[1]
__proto__: Object