是否可以从自身内部获取 javascript IIFE 的文本内容?

Is it possible to get the text contents of a javascript IIFE from within itself?

假设我有一个 IIFE:

let imagodei = {};

;(async function(){
   let C = "12:19";

   imagodei.myIife = aFunctionToGetIifeText()

})(imagodei);

我想定义 aFunctionToGetIifeText() 使得 imagodei.myIife 是上述代码的字符串(不包括 let imagodei = {};)。有谁知道这是否可能?

我看过这些问题,但它们适用于具有命名函数的情况:

javascript get function body

How to get function body text in JavaScript?

您可以使用 arguments.callee,它仅适用于 "normal" 函数(不是箭头函数)

(function() {
  var x = 1;
  console.log(arguments.callee+"");
})()

使用已弃用的 .caller() 方法 -

let imagodei = {};

function aFunctionToGetIifeText(){ 
  console.log(aFunctionToGetIifeText.caller.toString());
}

(async function(){
   let C = "12:19";

   imagodei.myIife = aFunctionToGetIifeText()

})(imagodei);

您可以从this Whosebug question

获得更多参考