Как получить данные из функции esModule вместо плоской функции? - PullRequest
0 голосов
/ 05 декабря 2018

Таким образом, в настоящее время я использую 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 голосов
/ 05 декабря 2018

Это всего лишь артефакт того, как 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
...